Skip to main content
Glama

Server Details

Time tracking, live project budgets, and billing exports for service firms.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 4/5 across 114 of 114 tools scored. Lowest: 2.5/5.

Server CoherenceC
Disambiguation2/5

Multiple tools have overlapping purposes, e.g., create_time_report and log_time both create a single time entry with near-identical descriptions. There are also many similar getter/list tools that blur together, making it hard for an agent to select the right one.

Naming Consistency2/5

Most tool names use snake_case, but verbs are inconsistent: 'list' vs 'get' for similar operations, 'manage' combines create/update/delete, and 'use_favorite' is an outlier. This pattern reduces predictability.

Tool Count1/5

With 114 tools, the set is extremely large and far beyond a well-scoped server (typical 3-15). This overwhelms agents and suggests many tools could be consolidated or removed.

Completeness3/5

The tool surface covers a broad domain including customers, projects, tasks, time tracking, invoicing, and user management, but there are gaps like no list_users or direct user listing, and some operations seem redundant rather than filling missing functionality.

Available Tools

114 tools
approve_timesheetAInspect

Approve a submitted timesheet period for a team member. The period and its time reports transition to Approved. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
submission_period_idYesId of the submission period to approve (from get_pending_approvals or list_approval_history).
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses the state transition, the confirm flag behavior (preview vs action), and role restrictions. Lacks mention of idempotency_key behavior, but that is covered in the schema. Overall good transparency for a mutation tool.

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

Conciseness5/5

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

Two sentences: first states purpose and effect, second provides usage and role guidance. No wasted words, information is front-loaded and easy to parse.

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

Completeness4/5

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

Covers purpose, usage, roles, and behavioral effect. For a simple approval tool with three parameters and no output schema, this is sufficient. Could mention what happens after approval (e.g., notification), but not essential.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are already described. The description adds context that confirm must be true to perform the action, and reinforces the role requirement, adding value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb 'Approve' and resource 'submitted timesheet period', clearly stating the effect 'transition to Approved'. This distinguishes it from siblings like reject_timesheet or submit_timesheet.

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

Usage Guidelines4/5

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

Explicitly mentions when to use (on submitted periods), the required roles (Manager/Admin/Owner, excludes Finance), and that confirm=true is needed to proceed. Does not explicitly mention alternatives or when not to use, but the context is clear.

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

assign_user_to_customerAInspect

Assign an organization member to a billing customer so they can see that customer and all its projects. Requires the org_user_id (discover it with get_project_team or get_employee_timesheet) and the customer_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself (Owner is not targetable by Admin).

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesId of the customer to assign the user to.
org_user_idYesId of the OrganizationUser to assign (not the Firebase user id — use get_project_team to discover it).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

No annotations provided. Description adds constraints (cannot assign Owner) and idempotency key mention, but does not detail side effects (e.g., whether it replaces or adds assignments) or error conditions.

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

Conciseness5/5

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

Two concise sentences; front-loaded purpose then requirements/constraints. No redundancy.

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

Completeness4/5

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

Covers purpose, parameters, and constraints well. Lacks details on return value and behavior on duplicate assignment, but sufficient for selection.

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

Parameters5/5

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

Schema covers all 3 params (100%). Description adds value by clarifying org_user_id is not Firebase user ID and provides discovery methods, plus warns not to pass org ID.

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

Purpose5/5

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

Clear verb+resource: 'Assign an organization member to a billing customer'. Distinguishes from sibling 'assign_user_to_project' and 'remove_user_from_customer'.

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

Usage Guidelines5/5

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

Explicitly states prerequisites (org_user_id, customer_id), how to discover them, and constraint 'You cannot target a user more privileged than yourself'.

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

assign_user_to_projectAInspect

Assign a member to a project so they can see it and log time against its tasks. Identify the member by email (preferred) or by org_user_id, and the project by project_id (discover ids with find_billing_work - never ask the user for an id). The organization is fixed by your context.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail of the member to assign (preferred). Provide this OR org_user_id.
project_idYesId of the project to assign the member to (required). Must be a project in your organization.
org_user_idNoOrganization-user id of the member to assign. Provide this OR email.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the member will gain visibility and ability to log time, and explains idempotency key behavior. However, it does not specify whether reassignment overwrites existing assignments or what permissions are required.

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

Conciseness5/5

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

The description is three sentences, each adding distinct information: action/effect, identification guidance, and organizational context. No unnecessary words, efficiently front-loaded with the core purpose.

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

Completeness4/5

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

Given 4 parameters, no annotations, and no output schema, the description covers most needed context: effect, identification, idempotency, and fixed organization. It lacks details on re-assignment behavior or error scenarios, but overall complete for a mutation tool.

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

Parameters4/5

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

Schema coverage is 100%, so each parameter has a schema description. The tool description adds value by stating that email is preferred, explaining the purpose of the assignment, and clarifying the idempotency key's retry behavior. This goes beyond the schema's baseline.

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

Purpose5/5

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

The description clearly states the action ('Assign a member to a project') and the effect ('so they can see it and log time against its tasks'). It distinguishes from siblings like 'remove_user_project' and 'assign_user_to_customer' by specifying the resource and scope.

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

Usage Guidelines4/5

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

Provides explicit guidance on how to identify the member (email preferred, org_user_id alternative) and the project (project_id, with reference to 'find_billing_work' for ID discovery). Also warns against asking the user for IDs. However, it does not explicitly mention when not to use the tool or compare with alternatives.

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

bulk_create_time_reportsAInspect

Create multiple time entries in one call. Supply an 'entries' array where each item has subtask_id, date (YYYY-MM-DD), and hours (> 0 and ≤ 24); optionally start_time (HH:mm, defaults to 09:00) and text. Entries are always attributed to you. Returns per-item results (partial failures are reported rather than aborting the batch). Max 50 entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
entriesYesList of time entries to create (max 50).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations, the description adequately discloses key behaviors: entries attributed to user, partial failure handling (returns per-item results), and a maximum batch size of 50. However, it omits mentioning idempotency_key behavior, which is defined in the schema but not in the description.

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

Conciseness5/5

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

The description is concise at 4 sentences, with the main action ('Create multiple time entries in one call') front-loaded. Every sentence adds necessary information without redundancy.

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

Completeness4/5

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

Given the tool's complexity (nested array, partial failures, defaults), the description covers essential aspects. It lacks explicit return format details but mentions per-item results, which suffices without an output schema. Minor gap: no mention of idempotency_key effect on retries.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3. The description adds significant value beyond schema: explains start_time default (09:00), hours range (>0 and ≤24), ownership attribution, partial failure reporting, and batch limit. This exceeds the schema's minimal descriptions.

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

Purpose5/5

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

The description clearly states the verb ('Create'), resource ('multiple time entries'), and mechanism ('in one call' with an 'entries' array). It distinguishes from single-creation tools like create_time_report by emphasizing bulk operation.

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

Usage Guidelines4/5

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

The description specifies when to use this tool (batch creation) but does not explicitly mention when not to use it or suggest alternatives like create_time_report for single entries. The context is clear but lacks exclusionary guidance.

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

bulk_update_cost_ratesAInspect

Apply an organization-wide adjustment to every member's hourly COST rate, effective from a date. Supply EITHER adjustment_percentage (e.g. 5 to raise all rates by 5%, -3 to cut 3%) OR fixed_amount (set every rate to this exact amount), not both. The organization is fixed by your context - never pass an organization id. Rate values are never echoed back.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixed_amountNoSet every rate to this exact amount. Provide this OR adjustment_percentage, not both.
effective_fromYesDate the adjusted rates take effect (YYYY-MM-DD) (required).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
adjustment_percentageNoPercentage to adjust every rate by (e.g. 5 = +5%, -3 = -3%). Provide this OR fixed_amount, not both.
Behavior3/5

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

Discloses that rate values are never echoed back, which is critical for an agent expecting a response. Also notes the effective date and organization-wide effect. However, with no annotations, it misses details like idempotency behavior (key present in schema) and authorization requirements, leaving some gaps.

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

Conciseness5/5

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

Two tight sentences, no wasted words. Front-loaded with purpose and constraint. Each segment earns its place.

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

Completeness4/5

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

Covers purpose, key constraints, and behavioral nuance (no echo). Without output schema or annotations, the description is adequate for a mutation tool with 4 parameters. Lacks detailed error behavior or response format, but the core usage is well explained.

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

Parameters4/5

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

Schema covers 100% of parameters, providing baseline 3. Description adds value by explaining the mutual exclusivity of adjustment_percentage and fixed_amount, giving examples (e.g., 5 for +5%), and clarifying the organization context (never pass an ID). This goes beyond the schema's property descriptions.

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

Purpose5/5

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

Clear verb ('Apply') and resource ('organization-wide adjustment to every member's hourly COST rate'). Specifies scope (organization-wide, effective from a date) and distinguishes from granular tools like set_user_cost_rate.

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

Usage Guidelines4/5

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

Explicitly states when to use: for organization-wide adjustments. Provides constraints: supply one of adjustment_percentage or fixed_amount, not both, and never pass an organization id. Does not explicitly name alternatives for individual rate changes, but sibling tool set_user_cost_rate implies the contrast.

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

bulk_update_time_reportsAInspect

Apply a common text description update to multiple of your own time entries. Supply ids (list of time-report ids, max 100) and text (the new description). Returns per-id results — partial failures are reported rather than aborting the whole batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesIds of the time entries to update (max 100).
textYesNew description to apply to all entries (max 1000 characters).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations, the description discloses key behaviors: batch nature, max 100 entries, returns per-id results, and partial failures reported. It does not detail idempotency (though idempotency_key param exists) or permissions, but covers the core behavior.

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

Conciseness5/5

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

The description is two sentences, front-loads the purpose, and contains no extraneous information. Every sentence adds value.

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

Completeness4/5

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

For a 3-param tool with no output schema, the description sufficiently covers the operation, constraints, and failure behavior. Missing details like authorization or exact output format, but adequate for selection and basic invocation.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description repeats 'ids' and 'text' with constraints (max 100, max 1000 chars) already in schema, adding no new meaning. The optional 'idempotency_key' is not mentioned. No additional value beyond schema.

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

Purpose5/5

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

The description clearly states the action ('Apply a common text description update') and the resource ('multiple of your own time entries'). It implicitly distinguishes from the sibling 'update_time_report' by emphasizing 'multiple' and 'own time entries', and mentions 'bulk' in the name.

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

Usage Guidelines4/5

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

The description indicates when to use the tool (updating many time entries with the same description). It does not explicitly exclude alternatives or mention when not to use, but the bulk vs single distinction is implicit given the sibling 'update_time_report'.

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

cancel_inviteAInspect

Cancel a pending invitation so the invite link is no longer valid. The email address can be re-invited at any time. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
invite_idYesId of the pending invitation to cancel.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

Discloses cancellation effect and preview mode, but lacks details on permissions, reversibility, or notification. Without annotations, the description carries full burden and omits these behavioral aspects.

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

Conciseness5/5

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

Two sentences with no waste; front-loaded with the core purpose. Every sentence earns its place.

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

Completeness3/5

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

Covers main action but does not specify the return format of the preview or error conditions. With no output schema, the description should at least hint what the preview returns.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds value by explaining the preview behavior tied to the confirm parameter, which goes beyond schema descriptions.

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

Purpose5/5

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

Clearly states the action (cancel) and resource (pending invitation), and distinguishes from siblings like invite_user and resend_invite by specifying the effect (link no longer valid) and the ability to re-invite.

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

Usage Guidelines4/5

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

Provides context on when to use (cancel pending invitation) and preview behavior (omit confirm for preview). No explicit exclusion or comparison to alternatives, but the preview guidance is helpful.

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

cancel_scheduled_reportAInspect

Permanently delete a scheduled report definition. Requires confirm=true to proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesId of the scheduled report to delete.
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations, the description carries full burden. It clearly discloses that the action is permanent deletion and requires confirmation. This is transparent about destructive behavior, though it doesn't detail side effects like cascading deletes.

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

Conciseness5/5

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

The description is two short sentences with no filler. It conveys essential information efficiently.

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

Completeness4/5

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

For a simple deletion tool, the description covers key aspects (purpose, requirement). It lacks mention of idempotency or preview behavior when confirm is false, but overall it is sufficiently complete given the tool's complexity.

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

Parameters3/5

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

The input schema covers all parameters with 100% description coverage. The description adds minimal value beyond the schema, only reiterating the confirm requirement. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Permanently delete'), the resource ('scheduled report definition'), and a key requirement ('confirm=true'). This distinguishes it from sibling tools like create_scheduled_report and update_scheduled_report.

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

Usage Guidelines3/5

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

The description mentions the confirm requirement but does not explicitly state when to use this tool versus alternatives (e.g., temporarily disabling a report). Usage context is implied but not elaborated.

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

cancel_timerAInspect

Cancel (discard) your running timer without creating a time entry. The elapsed time is lost. No arguments needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that elapsed time is lost, which is a key behavioral effect. However, it does not discuss idempotency or other edge cases, leaving some gaps for a mutation tool.

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

Conciseness5/5

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

Two short sentences convey purpose, effect, and argument expectations with zero waste. Every word earns its place.

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

Completeness5/5

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

For a simple tool with one optional parameter and no output schema, the description is complete. It covers the action, result, and argument expectations, requiring no further explanation.

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

Parameters3/5

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

Schema coverage is 100% for the single optional parameter, and the description adds 'No arguments needed' to clarify that no input is required. This reinforces the schema but does not add new semantic details beyond the parameter's description.

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

Purpose4/5

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

The description clearly states the tool cancels or discards a running timer without creating a time entry. It distinguishes itself from similar tools like stop_timer by noting that elapsed time is lost, but does not explicitly name siblings.

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

Usage Guidelines2/5

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

The description implies when to use (when you want to discard time), but provides no explicit guidance on when not to use or alternatives. It does not mention any prerequisites or contraindications.

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

change_user_roleAInspect

Change an organization member's role. Returns a preview; re-call with the confirm_token and an idempotency_key to commit. Cannot assign the Owner role. Cannot escalate beyond your own role.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_roleYesNew role to assign: Admin, Finance, Manager, Member, or Viewer.
org_user_idYesId of the OrganizationUser record to update (not the Firebase userId).
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

Without annotations, the description discloses key behaviors: preview returns a token, requires confirm_token and idempotency_key for commit, token expiration (~10 minutes), and role escalation limits. Does not cover failure modes or reversibility, but sufficient for most use cases.

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

Conciseness5/5

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

Extremely concise: three sentences covering purpose, process, and constraints. No filler, front-loaded with key action. Every sentence adds value.

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

Completeness4/5

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

Given 4 parameters and no output schema, the description covers the complete workflow including preview and commit. Could mention the return value structure (what preview returns beyond token) but overall adequate for correct tool invocation.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds meaning beyond schema: explains that org_user_id is not Firebase userId, confirm_token is obtained from preview, idempotency_key prevents duplicate actions, and new_role lists allowed values. Enhances schema documentation.

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

Purpose5/5

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

Description clearly states it changes an organization member's role, outlines the two-step preview-commit process, and specifies constraints (cannot assign Owner, cannot escalate beyond own role). This distinguishes it from sibling tools like assign_user_to_customer or invite_user.

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

Usage Guidelines4/5

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

Provides clear when-to-use context and explicitly states restrictions (cannot assign Owner, cannot escalate beyond own role). Does not compare with alternative tools, but the two-step commit process is well-explained.

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

check_budget_limitsAInspect

Check whether logging additional hours on a subtask would exceed its budget limits. Returns whether the budget is exceeded and a message.

ParametersJSON Schema
NameRequiredDescriptionDefault
sub_task_idYesId of the subtask to check.
additional_hoursYesHours to check against the budget limit.
Behavior3/5

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

Since no annotations are provided, the description carries full burden. It discloses that the tool returns a boolean and a message, suggesting a read-only check. However, it does not explicitly state that the tool has no side effects, does not modify data, or require specific permissions. More behavioral clarity would be beneficial.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and contains no unnecessary information. Every word contributes to clarity, making it highly efficient.

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

Completeness4/5

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

Given the tool's simplicity (2 params, no output schema, no annotations), the description adequately covers the tool's purpose, usage scenario, and return value. It is mostly complete, though it could mention that it is a safe, read-only operation. The lack of output schema means the description compensates sufficiently.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions). The description adds marginal context by framing the hours as 'additional' within the logging scenario, but this builds on what the schema already provides. Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the action ('Check'), the resource ('subtask budget limits'), and the specific scenario ('logging additional hours'). It effectively distinguishes this tool from siblings like 'get_budget_alerts' or 'get_budget_health' by focusing on a pre-logging check for a specific subtask.

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

Usage Guidelines3/5

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

The description implies use before logging additional hours to verify budget limits, but it does not explicitly state when to use this tool versus alternatives (e.g., 'get_budget_health', 'set_budget_thresholds'). No 'when not to use' or alternative recommendations are provided, making the guidance 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.

close_frame_orderAInspect

Close an Open frame order so no new invoices may link to it. Returns a preview unless confirm=true is set. Closing is not directly reversible; the order remains in the Closed state.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
frame_order_idYesId of the frame order to close.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

Without annotations, the description discloses preview behavior, the confirm parameter's role, and that closing is not reversible. It stops short of detailing the preview's contents or idempotency behavior, maintaining a high but not complete transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action, no filler. Every sentence adds information essential to understanding the tool's behavior.

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

Completeness3/5

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

No output schema exists, yet the description does not explain what the preview contains. Idempotency_key behavior is mentioned only in the schema, not in the description. Given the tool's complexity and missing output documentation, the description is somewhat incomplete.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions. The description adds no new parameter-level meaning beyond what the schema provides; it only contextualizes the confirm parameter in the workflow. Baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Close') and the resource ('Open frame order'), and specifies the effect ('so no new invoices may link to it'). It distinguishes from sibling tools like delete_frame_order and update_frame_order.

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

Usage Guidelines3/5

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

The description implies a two-step workflow (preview then confirm) and warns about irreversibility, but does not explicitly state when to use this tool versus alternatives like delete_frame_order or update_frame_order. No '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.

close_monthAInspect

Close a billing month so no further time can be logged or edited in it. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Reversible only by reopening the month.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesCalendar year of the month to close (e.g. 2026).
monthYesCalendar month to close (1-12).
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

Discloses the preview-commit flow, token expiration (~10 min from schema), idempotency key behavior, and reversibility. Without annotations, description carries burden well, though impact on invoicing/budgets is not mentioned.

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

Conciseness5/5

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

Three sentences: purpose then workflow. Every sentence adds value, no fluff. Front-loaded with main verb.

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

Completeness4/5

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

Describes core action and reversibility. Lacks return value or error detail, but for a commit tool it is sufficiently complete. Sibling 'reopen_month' provides related context.

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

Parameters4/5

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

Schema covers all parameters (100% coverage). Description adds context: explains how confirm_token and idempotency_key are used in the workflow, enhancing meaning beyond schema alone.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Close a billing month so no further time can be logged or edited in it.' It also distinguishes itself from the sibling 'reopen_month' by noting reversibility.

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

Usage Guidelines4/5

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

Provides clear two-step process: call without token to preview, then with confirm_token and idempotency_key to commit. Mentions reversibility only by reopening, but does not explicitly list scenarios where alternatives should be used.

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

commit_importAInspect

Commit a bulk-import CSV, creating the work hierarchy (customers, projects, tasks, subtasks) in the organization. Call validate_import first to verify the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
csv_contentYesThe CSV content to import. Must pass validate_import with no errors first.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

Discloses that the tool creates work hierarchy (customers, projects, tasks, subtasks), which is a write operation. No annotations provided, so the description must carry this burden. It mentions idempotency, indicating safe retry. Does not mention potential side effects like overwriting, but the core behavior is clear.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence states purpose and effect; the second gives a crucial usage hint. Well-structured and front-loaded.

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

Completeness3/5

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

No output schema exists, yet the description does not mention what the tool returns (e.g., success status or created objects). For a tool that creates multiple entities, this missing detail reduces completeness. Adequate for the low complexity but could be better.

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

Parameters3/5

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

Schema coverage is 100% (both parameters have descriptions). The description adds no extra meaning beyond the schema: it reiterates the prerequisite for csv_content but provides no new details about syntax or format. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Commit a bulk-import CSV') and the resource ('creating the work hierarchy'). It distinguishes from sibling 'validate_import' by implying a two-step process, with this tool performing the actual commit after validation.

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

Usage Guidelines4/5

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

Explicitly instructs users to call 'validate_import first to verify the file', providing clear usage order. Does not elaborate on when not to use, but the guidance is sufficient given the sibling tool.

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

copy_periodAInspect

Copy your own time entries from a source date range into a target date range, preserving each entry's weekday offset relative to the source start (e.g. copy last week to this week). New entries are created as Draft. The source range cannot exceed 31 days. Supply source_start_date, source_end_date, and target_start_date (all ISO 8601 YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
source_end_dateYesInclusive end of the range to copy FROM (YYYY-MM-DD).
source_start_dateYesInclusive start of the range to copy FROM (YYYY-MM-DD).
target_start_dateYesThe first date of the target range (source_start_date maps here, YYYY-MM-DD).
Behavior4/5

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

Discloses that entries are created as Draft and explains the weekday offset preservation. No annotations exist, so description fully carries behavioral disclosure. Mentions the 31-day constraint.

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

Conciseness5/5

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

Two sentences that effectively front-load purpose, then provide constraints and parameter format. No wasted words.

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

Completeness4/5

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

Adequately describes the operation, constraints, and parameter usage. Lacks return value details, but acceptable for a copy tool without output schema. Meets completeness needs given complexity.

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

Parameters4/5

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

Schema coverage is 100%. Description adds meaning by stating ISO 8601 format, mapping of source_start_date to target_start_date, and idempotency_key optionality. Exceeds baseline of 3.

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

Purpose5/5

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

Clearly states the tool copies time entries from a source to target date range while preserving weekday offset, using specific verbs and resources. Distinguishes from sibling tools like log_time or create_time_report.

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

Usage Guidelines4/5

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

Specifies it copies 'your own time entries' and imposes a 31-day source range limit. Provides clear context for use, though lacks explicit when-not-to-use or alternative tool references.

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

create_credit_noteBInspect

Create a credit note against an existing invoice, reducing the amount owed. Requires Finance role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesReason for the credit note (required).
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
invoice_idYesID of the invoice to credit (required).
credit_amountYesTotal credit amount (required, must be > 0 and ≤ invoice total).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions a role requirement but omits important details such as the idempotency key behavior, the preview mode via the 'confirm' parameter, potential side effects on invoice status, and any rate limits or audit logging. The preview behavior is only documented in the schema, not the description.

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

Conciseness5/5

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

The description is extremely concise—one sentence plus a role requirement. Every word is meaningful and there is no redundant or filler content.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, required preview behavior, idempotency, no output schema, no annotations), the description is insufficient. It fails to explain the preview mode, idempotency key behavior, effect on invoice status, or what the tool returns. A more complete description would cover these aspects.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal extra meaning beyond stating the overall purpose (reducing amount owed). It does not clarify parameter usage or constraints beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the action ('Create a credit note'), the resource ('existing invoice'), and the effect ('reducing the amount owed'). It also mentions a role requirement, distinguishing it from sibling tools like issue_invoice or void_invoice.

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

Usage Guidelines3/5

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

The description specifies a prerequisite ('Requires Finance role or above') but does not provide explicit guidance on when to use this tool versus other invoice-modifying tools, nor does it mention conditions or alternatives.

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

create_customerAInspect

Create a new billing customer in your organization. The organization is fixed by your context - never pass an organization id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCustomer name (required).
countryNoOptional country.
currencyNoOptional ISO 4217 currency code (e.g. USD, EUR). Defaults to USD.
descriptionNoOptional customer description (max 200 characters).
contact_emailNoOptional primary contact email address.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Create' (mutation) but does not disclose idempotency behavior (the schema includes an idempotency_key), success/failure conditions, or return value. The organization constraint is useful, but overall behavioral details are lacking.

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

Conciseness5/5

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

Two short sentences, front-loaded with purpose. No redundant information. Every sentence is meaningful and earns its place.

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

Completeness3/5

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

No output schema exists, so the description should ideally explain what is returned (e.g., created customer ID). It does not. Parameter count is moderate (6) and schema covers them, but behavioral details (errors, idempotency) are missing. Adequate but not complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds valuable semantic information beyond the schema: it clarifies that the organization ID is not to be passed (it's fixed by context). This compensates for the lack of parameter-specific details in the description.

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

Purpose5/5

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

The description clearly states the verb 'Create', resource 'billing customer', and scope 'in your organization'. It distinguishes from siblings like 'update_customer' and 'delete_customer' by specifying creation. The constraint about not passing an organization ID adds specificity.

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

Usage Guidelines4/5

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

The description tells the agent when to use this tool (to create a new billing customer) and explicitly warns against passing an organization ID because it's context-fixed. While it doesn't list alternatives, the purpose and sibling list imply when not to use it (e.g., for updates use 'update_customer').

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

create_custom_fieldAInspect

Define a new custom field on a billing entity type (project, task, subtask, time report, or customer) for your organization. The organization is fixed by your context - never pass an organization id. type is one of String, Number, Date, DateTime, ListOfValues; ListOfValues requires at least one option. Marking a field mandatory blocks creating that entity type until a value is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesField data type (required). One of: String, Number, Date, DateTime, ListOfValues.
titleYesHuman-readable label shown in the UI (required).
entityYesThe entity type this field is defined on (required). One of: billing_projects, billing_tasks, billing_sub_tasks, sub_tasks_time_reports, billing_customers.
field_idYesA unique, stable key for the field (required, max 50 chars), e.g. "po_number".
is_mandatoryNoWhether a value is required when creating/updating the entity. Defaults to false.
list_of_valuesNoOptions for a ListOfValues field (required for that type; at least one non-blank option).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

Without annotations, the description covers behavioral traits like fixed organization, type constraints, and mandatory blocking. However, it omits idempotency behavior and does not mention error conditions or authorization requirements.

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

Conciseness5/5

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

The description is concise (3 sentences), front-loaded with purpose, and contains no redundant or unnecessary information.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, no output schema, no annotations), the description covers purpose, scope, key constraints, and behavioral impacts. However, it does not mention the return value or idempotency key behavior, which would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying the organization context, ListOfValues constraint, and mandatory field effect, but the schema already covers parameter details adequately.

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

Purpose5/5

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

The description clearly states the tool's purpose: defining a new custom field on a billing entity type. It includes specific verbs (Define), resource (custom field), and scope (billing entity types), and implicitly distinguishes from siblings like delete_custom_field and update_custom_field.

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

Usage Guidelines4/5

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

The description provides contextual guidance: organization is fixed (never pass ID), type constraints, ListOfValues requirements, and mandatory field effects. However, it does not explicitly compare to alternatives or state when to use this tool over others.

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

create_favoriteBInspect

Save a time-entry combination as a favorite for quick reuse. Returns the created favorite.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask id.
project_idYesProject id.
customer_idYesCustomer id.
descriptionNoDefault time-entry description (optional).
sub_task_idYesSubtask id.
display_nameYesShort label for the favorite (e.g. 'Daily standup on Acme').
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral transparency. It states that the tool saves a favorite and returns it, but it does not mention idempotency (despite an idempotency_key parameter), authentication requirements, or any side effects beyond the creation. This is insufficient for an agent to understand the tool's behavior fully.

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

Conciseness5/5

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

The description is extremely concise: two sentences that convey the core purpose and return value. There is no extraneous information, and every word serves a purpose.

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

Completeness3/5

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

Given the tool has 7 parameters, complete schema coverage, no output schema, and no annotations, the description is minimally adequate. It explains what the tool does and what it returns, but lacks context about prerequisites, duplicate handling, or error conditions. For a creation tool, this is acceptable but not comprehensive.

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

Parameters3/5

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

Since the input schema covers 100% of parameters with descriptions, the baseline is 3. The description adds no extra semantics beyond noting that it's a 'time-entry combination', which vaguely ties to the required entity IDs. It does not elucidate parameter relationships or constraints.

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

Purpose5/5

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

The description clearly states the action ('Save a time-entry combination as a favorite') and the resource ('favorite'). It also mentions the return value, which helps distinguish from sibling tools like delete_favorite, list_favorites, and use_favorite.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There are no usage scenarios or conditions mentioned, and no references to related tools (e.g., list_favorites or use_favorite) to help an agent decide which tool to invoke.

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

create_frame_orderAInspect

Create a new Open frame order (blanket PO / commercial envelope) for a customer. A frame order tracks a contracted hours or amount cap that invoices can draw down against. Reversible — the frame order can be deleted while it is still Open.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional free-text notes (max 2000 chars).
currencyNoISO 4217 currency code (e.g. USD). Defaults to the customer's currency when omitted.
end_dateNoOptional end date in YYYY-MM-DD format (must be >= start_date).
referenceYesUnique reference string per (org, customer), e.g. 'PO-2026-001'. Max 100 chars.
start_dateNoOptional start date in YYYY-MM-DD format.
customer_idYesId of the customer this frame order belongs to.
descriptionNoOptional human-readable description (max 500 chars).
total_hoursNoOptional contracted hours cap (must be > 0).
total_amountNoOptional contracted amount cap (must be > 0).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

With no annotations, the description bears the full burden. It discloses that the frame order is reversible (can be deleted while Open), but does not cover other behavioral details such as permissions, rate limits, or the exact state transition upon creation. The idempotency key behavior is in the schema, not the description.

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

Conciseness4/5

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

The description is three sentences, conveying the core purpose, functionality, and a key behavioral note in a front-loaded manner. It is concise without wasted words, though the phrase 'blanket PO / commercial envelope' adds slight redundancy.

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

Completeness3/5

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

Given the complexity (10 parameters, no output schema), the description provides basic context but lacks details about the expected output (e.g., does it return the created frame order ID?), the required parameters (customer_id and reference are not emphasized), and the lifecycle beyond the Open state.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description mentions 'contracted hours or amount cap' relating to total_hours and total_amount but adds no additional meaning beyond the schema. It does not explain reference uniqueness or idempotency key beyond what is already in the parameter descriptions.

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

Purpose5/5

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

The description clearly states 'Create a new Open frame order' and explains what a frame order is (blanket PO/commercial envelope) and its function (tracks contracted hours/amount cap). It effectively distinguishes the tool from siblings like update_frame_order and delete_frame_order.

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

Usage Guidelines3/5

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

The description mentions reversibility (can delete while Open) but does not explicitly state when to use this tool versus alternatives like update_frame_order or close_frame_order. No direct guidance on prerequisites or when not to use it is provided.

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

create_holiday_profileAInspect

Create and SAVE a national-holiday profile for the organization for a specific year, AFTER the user has explicitly reviewed and confirmed the holiday list. Each holiday is either a full day off or a half/partial working day (with a start/end working window). Holiday dates MUST come from suggest_holiday_profile or the user — never invent dates. Only call this once the user has confirmed; do not call it to preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA descriptive profile name, e.g. "US Holidays 2026" or "Israel 2026".
yearYesThe calendar year this profile governs (e.g. 2026). It applies only to its year.
notesNoOptional free-text notes about this profile.
sourceNoProvenance of the dates: "hebcal", "nager", "manual", or "ai". Use the source returned by suggest_holiday_profile.
holidaysYesA JSON array (as a string) of the confirmed holidays, each an object: {"date":"YYYY-MM-DD","name":"...","full_day_off":true|false,"window_start":"HH:mm","window_end":"HH:mm"}. Dates must be within the profile's year. full_day_off=false means a half/partial working day — include window_start/window_end; otherwise omit them. Example: [{"date":"2026-01-01","name":"New Year's Day","full_day_off":true},{"date":"2026-04-01","name":"Erev Pesach","full_day_off":false,"window_start":"08:00","window_end":"13:00"}]
set_as_defaultNoOptional. Set this profile as the organization's default holiday set for its year.
default_for_countriesNoOptional comma-separated ISO-2 country codes this profile is the country-default for (for its year), e.g. "US" or "US,CA".
Behavior4/5

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

No annotations provided, but description discloses write behavior ('SAVE'), constraints on date sourcing, and holiday structure. Lacks details on return value or error conditions, but provides meaningful behavioral context beyond the schema.

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

Conciseness5/5

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

Two concise sentences with all key information front-loaded. Every sentence adds value; no redundancy or fluff.

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

Completeness4/5

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

Covers purpose, usage, parameter constraints, and source requirements. Missing return value info, but given no output schema and moderate complexity (7 params), the description is mostly complete for agent invocation.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions. Description reinforces the structure of the 'holidays' parameter and the source constraint but doesn't add significant new meaning; baseline 3 appropriate.

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

Purpose5/5

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

Description uses clear verb 'Create and SAVE' and specifies resource 'national-holiday profile for the organization for a specific year'. It distinguishes from sibling 'suggest_holiday_profile' by emphasizing this is the final save step after user confirmation.

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

Usage Guidelines5/5

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

Explicit guidance: 'Only call this once the user has confirmed; do not call it to preview.' Also states holidays must come from suggest_holiday_profile or user, never invent. Clearly differentiates when to use this vs suggest_holiday_profile.

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

create_projectAInspect

Create a new billing project under one of your customers. The organization is fixed by your context; customer_id must be a customer in your organization. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name (required).
customer_idYesId of the customer this project belongs to (required). Must be a customer in your organization.
descriptionNoOptional project description (max 500 characters).
billing_typeYesBilling type to allow on the project (required). One of: TM, Fix, OVH.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
create_general_activityNoOptional. When true (the default for this tool), also create a default visible "General" task + activity so time can be logged on the project immediately. Set false to create an empty project with no activities yet.
Behavior3/5

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

No annotations provided, so the description carries full burden. It discloses the default behavior of create_general_activity and the idempotency_key, but does not mention permissions, side effects, or possible errors. Adequate but not rich.

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

Conciseness5/5

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

Two sentences that cover purpose and usage guidelines without any redundant words. Highly efficient and front-loaded.

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

Completeness3/5

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

Missing output format description and error handling details. For a creation tool, expected return value (e.g., created project object) is not mentioned, but the description covers core functionality adequately given schema coverage.

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

Parameters4/5

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

Schema covers 100% of parameters (baseline 3). Description adds value by explaining the organization context, how to obtain ids (find_billing_work), and the behavior of create_general_activity beyond the schema's brief description.

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

Purpose5/5

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

The description explicitly states the action (Create), the resource (a new billing project), and the context (under one of your customers). It distinguishes from sibling tools like update_project and delete_project by specifying 'billing project' and the customer relationship.

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

Usage Guidelines4/5

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

Provides clear guidance: customer_id must be in the organization, discover ids with find_billing_work, never ask the user for an id. While it doesn't explicitly list when not to use, the context is sufficient for correct selection.

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

create_scheduled_reportAInspect

Create a new scheduled report definition. The report will be generated and emailed to recipients on the configured cadence.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for this scheduled report (max 150 chars).
formatNoOutput format: pdf (default) or csv.
cadenceYesSchedule cadence: Daily, Weekly, or Monthly.
recipientsYesComma-separated recipient email addresses.
report_typeYesReport type: DailySummary or MonthlyHours.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions automated generation and emailing, but fails to note important aspects like idempotency behavior (only hinted via schema), error handling for invalid recipients, or return values. This leaves gaps for the agent.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no redundant words, and the main action is front-loaded. Every part contributes to understanding the tool's purpose.

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

Completeness3/5

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

Given moderate complexity (6 params, no output schema, no annotations), the description is adequate but incomplete. It lacks details on success/failure outcomes, idempotency semantics, and email behavior. For a tool with many siblings, more context would help.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds little beyond schema (e.g., 'on the configured cadence' but cadence is already described). It does not explain parameter interactions or constraints, so it stays at baseline.

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

Purpose5/5

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

The description clearly states the tool creates a new scheduled report definition and explains its purpose (generation and emailing on a cadence). It distinguishes from sibling tools like cancel_scheduled_report, update_scheduled_report, and list_scheduled_reports.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., when to update vs create) or any prerequisites. It lacks context for choosing among scheduled report operations.

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

create_subtaskAInspect

Create a subtask under a task. All time entries are logged against subtasks, so every task needs at least one. The subtask inherits a valid billing type from the parent task. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSubtask name (required).
task_idYesId of the parent task (required). Must be a task in your organization.
descriptionNoOptional subtask description.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

No annotations provided, so description carries the burden. Describes that subtasks inherit billing type and that all time entries are logged against them. Does not cover permissions, idempotency behavior beyond schema, or error conditions. Adequate but not comprehensive.

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

Conciseness5/5

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

Three short sentences, front-loaded with the main action. Every sentence adds value: purpose, contextual importance, and usage tip. No redundancy or fluff.

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

Completeness4/5

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

Given no output schema, return value is not explained, but typical for creation tools. Provides sufficient context for using the tool in context of sibling tools and overall workflow. Could mention common errors or prerequisites, but sufficient.

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

Parameters4/5

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

Schema coverage is 100% (all params described). Description adds value beyond schema by explaining that task_id should be obtained via find_billing_work and that subtask inherits billing type. This provides important context for correct parameter usage.

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

Purpose5/5

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

Clearly states 'Create a subtask under a task', specifies the resource and action. Distinguishes from siblings like update_subtask, delete_subtask. Explains the importance (time entries are logged against subtasks) and inheritance of billing type.

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

Usage Guidelines4/5

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

Explicitly instructs to discover IDs with find_billing_work and never ask the user. Implies when to use (creating subtask, every task needs one). Does not give explicit when-not-to-use, but context is clear enough.

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

create_taskAInspect

Create a task under a project. Tasks group the subtasks that time is logged against. The task inherits its allowed billing types from the parent project. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTask name (required).
project_idYesId of the parent project (required). Must be a project in your organization.
descriptionNoOptional task description.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
create_general_activityNoOptional. When true (the default for this tool), also create a default visible "General" activity under the task so time can be logged immediately. Set false to create a task with no activities yet.
Behavior3/5

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

No annotations provided, so description must cover behavioral traits. It explains inheritance of billing types and default activity creation. Missing details on mutation nature, permissions, or side effects, but covers key behaviors.

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

Conciseness5/5

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

Three sentences, no fluff. Front-loaded with core function, then explanatory context, then actionable guidance. Every sentence earns its place.

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

Completeness3/5

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

Covers parameter purpose and some behavioral context, but lacks response format or error conditions. For a create operation with no output schema, more details on return value would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100% so baseline is 3. Description adds context about task purpose and ID discovery but does not significantly enhance meaning beyond schema descriptions.

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

Purpose4/5

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

Clearly states 'Create a task under a project' and explains tasks group subtasks. Does not explicitly differentiate from sibling tools like create_subtask, but the context of creating tasks vs subtasks is implied.

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

Usage Guidelines3/5

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

Provides a specific guideline: 'Discover ids with find_billing_work - never ask the user for an id.' However, it does not discuss when to use this tool over alternatives or mention prerequisites.

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

create_time_reportAInspect

Create a new time entry on a subtask for the current user. The entry is always attributed to you — you cannot create entries on behalf of another user. Supply subtask_id, the date (ISO 8601 YYYY-MM-DD), start_time (HH:mm, defaults to 09:00), and hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of the work (ISO 8601 YYYY-MM-DD, e.g. 2026-01-15).
textNoOptional description of the work performed (max 1000 characters).
hoursYesHours worked (> 0 and ≤ 24).
start_timeNoOptional start time in 24-h HH:mm (defaults to 09:00).
subtask_idYesId of the subtask to log time against.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

With no annotations provided, the description carries full burden. It covers key behavioral aspects: user attribution, default start_time, and required parameters. However, it does not explain idempotency behavior (though schema does), side effects, error handling, or response format, leaving some gaps.

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

Conciseness5/5

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

The description is three sentences: purpose, attribution limitation, and key params with defaults. It is front-loaded with the action and contains no extraneous words, efficiently conveying essential information.

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

Completeness4/5

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

For a 6-parameter create tool with no output schema and no annotations, the description is largely complete: it covers scope, user limitation, and key inputs. However, it does not specify what the response looks like (e.g., created object or success flag) and omits potential error conditions, leaving minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, providing baseline 3. The description adds minimal value beyond the schema: it reiterates the default for start_time and summarizes key params. It does not introduce new semantic meaning or clarify how parameters interact beyond what schema already states.

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

Purpose5/5

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

The description explicitly states the tool creates a time entry on a subtask for the current user. It uses a specific verb 'create' and resource 'time entry on a subtask', clearly distinguishing from sibling tools like bulk_create_time_reports or log_time by specifying scope and user attribution.

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

Usage Guidelines4/5

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

The description clearly states that entries are always attributed to the current user and cannot be created for others, providing a clear when-not-to-use condition. It implies usage for logging personal time on a subtask but does not explicitly mention alternative tools like log_time or bulk_create_time_reports, which could help further.

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

delete_api_keyAInspect

Permanently revoke one of your Integration API keys. Any MCP clients or integrations using the key will lose access immediately and cannot be restored. Returns a preview; re-call with the confirm_token and an idempotency_key to commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesId of the API key to permanently revoke.
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior5/5

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

The description fully discloses the permanent and irreversible nature ('Permanently revoke', 'cannot be restored'), immediate loss of access, the two-step preview-and-commit process, expiration of the confirm_token (~10 minutes), and idempotency behavior. No annotations are provided, so the description carries the full burden and does so effectively.

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

Conciseness5/5

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

The description is two concise sentences. The first states the action and consequences. The second explains the two-step process. Every sentence adds necessary information with no redundancy or filler.

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

Completeness4/5

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

Given the tool has 3 parameters and no output schema, the description covers the key workflow and consequences. It could optionally mention what the preview returns (e.g., the confirm_token and a preview of the key being deleted), but it is largely complete for effective use.

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

Parameters5/5

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

The input schema has 100% coverage, describing each parameter. The description adds significant value by explaining the two-step workflow: first call without confirm_token to get a preview, then commit with confirm_token and idempotency_key. It clarifies the purpose of the idempotency_key beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Permanently revoke one of your Integration API keys.' It uses a specific verb ('revoke') and identifies the resource ('Integration API keys'). It distinguishes itself from sibling delete tools by being specific to API keys and describing the two-step process.

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

Usage Guidelines4/5

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

The description implies when to use the tool (when you want to permanently revoke an API key) and describes the two-step process. However, it does not explicitly state when not to use it or mention alternatives, but given the specialized nature, the guidance is adequate.

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

delete_customerAInspect

Soft-delete a billing customer and its whole hierarchy (projects, tasks, subtasks) into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
customer_idYesId of the customer to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses soft-delete, recycle bin, admin restore capability, and the preview/confirm mechanism. It does not mention permission requirements or idempotency behavior beyond schema.

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

Conciseness5/5

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

Two sentences, no filler. The most critical information (action, hierarchy scope, confirm workflow) is front-loaded.

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

Completeness4/5

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

Given no output schema, the description adequately hints at a preview return. Sibling tools include many deletions, so the hierarchy soft-delete context is sufficiently distinguishing. Could mention admin requirement explicitly.

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

Parameters4/5

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

All parameters are described in the schema (100% coverage). The description adds context by explaining that confirm toggles preview vs action and that idempotency_key prevents duplicates, which goes beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Soft-delete'), the resource ('billing customer'), and the scope ('whole hierarchy including projects, tasks, subtasks'). It distinguishes itself from permanent deletion tools by specifying the recycle bin behavior.

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

Usage Guidelines4/5

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

The description explains the preview-then-confirm workflow, which guides usage. However, it does not explicitly mention prerequisites (e.g., admin role) or contrast with sibling tools like permanent_delete_entity or delete_project.

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

delete_custom_fieldAInspect

Delete a custom-field definition from the organization. If the field is mandatory and already has values stored on entities the service will reject the delete with a clear reason. Returns a preview unless confirm=true is set. Admin role required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
custom_field_idYesId of the custom field definition to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations, the description fully discloses behavioral traits: destructive action, preview mode, rejection condition, and admin requirement. It does not detail idempotency key behavior, but that is in the schema.

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

Conciseness5/5

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

Three concise sentences without fluff. Each sentence adds value: what it does, when it fails, and usage nuances. Perfectly front-loaded.

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

Completeness4/5

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

Given three parameters, no output schema, and high schema coverage, the description covers key behavioral aspects (preview, rejection, admin role). It is sufficient for an agent to understand when and how to invoke.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description adds context about confirm's effect (preview vs actual delete), but does not substantially enhance understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the action: 'Delete a custom-field definition from the organization.' It uses a specific verb and resource, and distinguishes itself from sibling tools like create_custom_field and update_custom_field.

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

Usage Guidelines4/5

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

The description explains when deletion may be rejected (mandatory fields with stored values) and requires admin role. It also notes the preview behavior without confirm=true. However, it does not explicitly contrast with alternatives like update_custom_field or set_custom_field_value.

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

delete_draft_invoiceAInspect

Delete a DRAFT invoice permanently. Only draft invoices can be deleted; issued invoices are permanent records. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
invoice_idYesId of the draft invoice to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior5/5

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

With no annotations provided, the description fully carries the burden. It discloses permanent deletion, the restriction to drafts, and the safe preview mode when confirm=true is not set. No contradictions.

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

Conciseness5/5

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

Two sentences, no filler. The most critical information (delete, permanent, draft-only, preview) is front-loaded. Every sentence adds essential context.

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

Completeness5/5

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

Given no output schema, the description adequately explains the behavior (preview vs. deletion) and constraints. It is complete for an agent to understand when and how to invoke this tool.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for each parameter. The description adds minimal value beyond the schema, only restating the confirm parameter's effect. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Delete', the resource 'DRAFT invoice', and the constraint 'Only draft invoices can be deleted; issued invoices are permanent records.' It effectively distinguishes from sibling tools like update_draft_invoice, issue_invoice, mark_invoice_paid, etc.

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

Usage Guidelines5/5

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

Explicitly specifies that the tool should be used only for draft invoices and warns that issued invoices cannot be deleted. It also describes the preview behavior (confirm=true for actual deletion), guiding the agent on when to proceed vs. preview.

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

delete_favoriteBInspect

Delete a saved time-entry favorite. Requires confirm=true to proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
favorite_idYesId of the favorite to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It mentions deletion but lacks details on whether it is irreversible, what the preview mode entails, or what happens after successful deletion. The description is too minimal for a destructive action.

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

Conciseness4/5

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

The description is concise with two sentences and no unnecessary words. However, it is somewhat under-specified given the tool's destructive nature; a bit more behavioral context would not harm conciseness.

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

Completeness2/5

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

Given the tool has 3 parameters and no output schema or annotations, the description should provide more context about return behavior, the preview mode, and the idempotency key. It fails to adequately prepare an AI agent for correct invocation.

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

Parameters2/5

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

Schema coverage is 100%, establishing a baseline of 3, but the description adds no new semantic value beyond what the schema provides. The only addition is echoing the requirement for confirm=true, which is already clear in the parameter description.

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

Purpose5/5

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

The description clearly states the action 'Delete' and the resource 'saved time-entry favorite', making the tool's purpose unambiguous. It effectively distinguishes from sibling tools like create_favorite and list_favorites.

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

Usage Guidelines3/5

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

The description specifies that 'confirm=true' is required to proceed, providing a clear usage condition. However, it does not provide guidance on when to use this tool versus alternatives, nor does it mention when not to use it.

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

delete_frame_orderAInspect

Soft-delete an Open frame order into the recycle bin (restorable by an Admin). Blocked when Issued/Sent/Paid invoices are linked — void or unlink those first. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
frame_order_idYesId of the frame order to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses soft-delete (restorable), blocked conditions, and preview behavior, giving a complete behavioral picture.

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

Conciseness5/5

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

Two sentences: first states core action, second adds important caveats. No wasted words, information is front-loaded and easy to parse.

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

Completeness5/5

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

No output schema, but the description covers the essential context: action type (soft-delete), effect (recycle bin), prerequisites (no linked invoices), and confirm behavior. This is complete for a delete tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The description reaffirms the confirm parameter's behavior but adds no new meaning beyond the schema, meeting the baseline.

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

Purpose5/5

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

The description states it soft-deletes an Open frame order into the recycle bin, which is a specific verb+resource. It distinguishes from siblings like permanent_delete_entity by specifying soft-delete and restorable by Admin.

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

Usage Guidelines5/5

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

Provides explicit guidance: blocked when linked to Issued/Sent/Paid invoices, recommends voiding or unlinking first. Also describes preview vs confirm behavior, helping the agent decide when to use confirm=true.

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

delete_holiday_profileAInspect

Delete a named national-holiday profile from the organization. The year's holidays will no longer be applied to time calculations. Returns a preview unless confirm=true is set. Admin role required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
holiday_profile_idYesId of the holiday profile to delete.
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: the preview-by-default behavior (returns a preview unless confirm=true), the admin role requirement, and the effect on time calculations. This goes beyond the structured schema and is highly transparent.

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

Conciseness5/5

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

The description is extremely concise with two sentences that front-load the action and key behaviors. Every sentence earns its place with no redundant or irrelevant content.

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

Completeness4/5

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

For a simple deletion tool with high schema coverage, the description is fairly complete—covering purpose, effect, admin requirement, and preview behavior. It could mention the return type or side effects more explicitly, but it is sufficient for most agents.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds some value by restating the confirm behavior and mentioning the admin role (which is not a parameter), but it does not significantly enhance understanding beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Delete', the resource 'named national-holiday profile', and the organization scope. It distinguishes from sibling tools like create_holiday_profile or update_holiday_profile by explicitly mentioning deletion and its effect on time calculations.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (to delete a holiday profile) and mentions the preview vs confirm behavior. However, it does not explicitly state when not to use it or suggest alternatives like update_holiday_profile for modifications, leaving some ambiguity.

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

delete_organizationAInspect

Soft-delete this organization. All members will be locked out and the org will be hidden until a platform admin restores it within the retention window. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Owner role required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior5/5

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

No annotations are provided, so the description fully carries the burden. It discloses key behaviors: members locked out, org hidden, retention window, preview-commit workflow, role requirement. This is comprehensive for a mutation tool.

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

Conciseness5/5

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

Two sentences that pack all essential information: action, effect, usage flow, prerequisites. No filler words, front-loaded with the most critical point (soft-delete). Every sentence earns its place.

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

Completeness5/5

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

Given the tool's complexity (two-step delete) and lack of output schema, the description covers preview and commit phases, token expiration, idempotency, role requirement, and consequences. Complete for an agent to use correctly.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds crucial context beyond schema: explaining the preview/commit flow, that confirm_token comes from first call and expires in ~10 minutes, and idempotency_key ensures safe retries. This adds significant semantic value.

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

Purpose5/5

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

The description clearly states 'soft-delete this organization', specifying the exact verb and resource. It distinguishes from sibling tools like permanent_delete_entity and other delete operations by highlighting the soft-delete nature.

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

Usage Guidelines5/5

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

Explicit step-by-step instructions: preview with no token, then commit with confirm_token and idempotency_key. Also warns that owner role is required and that the organization is hidden until admin restore, which tells when to use this tool versus alternatives.

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

delete_projectAInspect

Soft-delete a billing project and its whole task/subtask hierarchy into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
project_idYesId of the project to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

The description explicitly states 'soft-delete', recycle bin placement, admin restore capability, and preview behavior. It does not cover permissions or detailed side effects, but with no annotations, it provides good transparency.

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

Conciseness5/5

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

The description consists of two concise sentences with no redundant information. The key action is front-loaded, and the preview behavior is explained immediately.

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

Completeness4/5

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

Without an output schema, the description explains the return behavior (preview vs action). It covers the core functionality and distinguishes from sibling tools. Minor gaps: preview format not detailed, but acceptable.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds useful context: the 'confirm' parameter controls preview vs action, and the 'idempotency_key' parameter is explained. It clarifies the effect of each parameter beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (soft-delete) and the resource (billing project and its task/subtask hierarchy). It distinguishes from siblings like permanent_delete_entity and restore_entity by specifying recycle bin and admin restore.

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

Usage Guidelines4/5

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

The description explains the soft-delete behavior and the preview mechanism with confirm=true. It implicitly guides when to use this tool over permanent deletion, but lacks explicit when-not or alternative references.

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

delete_subtaskAInspect

Soft-delete a billing subtask into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
subtask_idYesId of the subtask to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses that deletion is soft and restorable, and that confirm=true is required for actual deletion. However, it omits potential prerequisites (e.g., admin role) or rate limits, keeping it slightly incomplete for full transparency.

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

Conciseness5/5

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

Two sentences pack essential information without redundancy. It front-loads the soft-delete concept and quickly addresses the preview/confirm distinction. Every sentence contributes meaning.

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

Completeness4/5

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

The description covers the main behavior and parameter role, but lacks details on return value format (preview structure) and assumes understanding of 'recycle bin'. Given no output schema, a bit more context on what the preview contains would improve completeness.

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

Parameters4/5

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

Schema covers all 3 parameters (100% coverage). The description adds value by explaining the confirm parameter's role in preview vs action, which enhances understanding beyond the schema's boolean description. The idempotency_key is standard, and subtask_id is self-explanatory.

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

Purpose5/5

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

The description clearly states the action (soft-delete), the resource (billing subtask), and the effect (into recycle bin, restorable by admin). It also distinguishes the preview vs confirm behavior, making it specific and unambiguous among sibling delete tools.

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

Usage Guidelines3/5

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

The description explains the soft-delete and preview behavior but does not explicitly guide when to use this tool over alternatives like permanent_delete_entity. The context of when-not-to-use or comparison to siblings is missing, though the behavior is implied.

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

delete_taskAInspect

Soft-delete a billing task and its subtask hierarchy into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
task_idYesId of the task to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

The description transparently discloses that deletion is soft and reversible via admin, the preview mechanism without confirm=true, and hints at idempotency behavior. With no annotations, it carries the full burden well.

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

Conciseness5/5

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

Two sentences with no redundant information. The most critical information (soft-delete, hierarchy, preview, confirm) is front-loaded and concise.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description covers behavior, parameters, and post-deletion state (recycle bin). Missing details about return preview specifics but is otherwise complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the effect of the 'confirm' parameter (preview vs. actual deletion) beyond the schema's description.

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

Purpose5/5

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

The description uses a specific verb ('soft-delete') and identifies the resource ('billing task and its subtask hierarchy'), clearly differentiating it from siblings like 'permanent_delete_entity' and 'delete_subtask'.

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

Usage Guidelines4/5

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

The description implies usage for reversible deletion and mentions the preview mode, but does not explicitly contrast with 'permanent_delete_entity' or 'update_task' for status changes, nor state when to use this versus alternative deletion methods.

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

delete_time_reportAInspect

Delete a time report entry. Members can delete their own reports; Managers/Admins can delete others' (subject to org settings). Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
time_report_idYesId of the time report entry to delete.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the destructive nature, preview behavior, and permission rules. It adds context beyond schema about the two-step delete process.

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

Conciseness5/5

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

Three efficient sentences ordered logically: purpose, permissions, preview/action. No fluff; every sentence adds essential info.

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

Completeness3/5

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

No output schema exists, so description should hint at preview response or soft-delete behavior. It omits whether deletion is permanent or goes to recycle bin, and what the preview returns. Adequate for basic use but incomplete for edge cases.

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

Parameters3/5

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

Schema coverage is 100%. The description restates the confirm behavior already documented in the schema but adds no new semantic meaning for time_report_id or idempotency_key. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'delete a time report entry' with a specific verb and resource. It also adds permission context (self vs. managers/admins) which helps distinguish from other delete tools.

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

Usage Guidelines4/5

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

Provides clear when-to-use: to delete a time report. It explains the preview pattern (call without confirm first) and permission constraints. However, it doesn't explicitly contrast with update_time_report or other alternatives.

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

delete_work_scheduleAInspect

Delete a named organization work schedule profile. Users assigned to this schedule will fall back to the default schedule. Returns a preview unless confirm=true is set. Admin role required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
work_schedule_idYesId of the work schedule to delete.
Behavior4/5

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

With no annotations, the description effectively conveys the destructive nature of deletion, the fallback behavior for assigned users, the preview-by-default pattern, and the admin role requirement. Minor omission: no mention of irreversibility.

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

Conciseness5/5

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

Three concise sentences that are front-loaded with the primary action. Every sentence adds value with no redundancy or fluff.

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

Completeness4/5

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

The description covers the primary return behavior (preview vs confirm), required role, and consequence of deletion. No output schema exists, but the description addresses the main return pattern. Lacks details about the preview structure, but overall completes the tool's context.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to individual parameters beyond what the schema already provides, but it does contextualize the overall tool behavior.

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

Purpose5/5

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

The description uses a specific verb 'Delete' and identifies the resource as 'named organization work schedule profile'. It clearly states what the tool does and distinguishes it from siblings like 'set_org_work_schedule' by focusing on deletion.

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

Usage Guidelines4/5

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

The description explicitly mentions that admin role is required and explains the preview-and-confirm mechanism. It does not provide explicit alternatives or when-not-to-use scenarios, but the context is clear enough for correct invocation.

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

disable_userAInspect

Disable an organization member so they can no longer sign in or use the app. Reversible — the user can be re-enabled from the web application. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional reason for disabling the user (stored for audit purposes).
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
org_user_idYesId of the OrganizationUser record to disable (not the Firebase userId).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

With no annotations, the description only partially discloses behavior: it states the effect (cannot sign in) and the preview vs. action flow. Missing details on side effects like session termination or data access.

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

Conciseness5/5

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

Two sentences—first states purpose, second adds key details (reversibility, preview). No wasted words; effectively front-loaded.

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

Completeness3/5

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

Covers core behavior and preview mechanism, but lacks return value details, error conditions, or post-action state. Given no output schema, the description is only moderately complete.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining the confirm parameter's preview role and idempotency_key's retry behavior, going beyond schema descriptions.

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

Purpose5/5

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

The description uses a specific verb ('disable') and resource ('organization member'), clearly stating the tool's purpose. It distinguishes itself from sibling tools like 'enable_user' and 'remove_user' by noting reversibility.

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

Usage Guidelines4/5

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

Provides context on when to use (to disable a user) and mentions the reversible nature and preview mechanism. Lacks explicit exclusions or alternatives but sufficiently guides usage.

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

enable_userAInspect

Re-enable a previously disabled organization member so they can log in and use the platform again. Requires the org_user_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_user_idYesId of the OrganizationUser to enable.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

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

In the absence of annotations, the description discloses key behaviors: the operation is a re-enable, requires the specific user ID, has a privilege restriction, and mentions idempotency via the optional key. It does not detail side effects or failure modes, but covers essential traits.

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

Conciseness5/5

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

Three short sentences front-load the purpose, then immediately list requirements and constraints. No redundant information. Every sentence adds value.

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

Completeness4/5

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

Given the tool has only 2 parameters, no output schema, and no nested objects, the description adequately covers purpose, requirements, constraints, and idempotency. However, it does not explain what happens if the user is already enabled or what the return value looks like (though output schema is absent).

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

Parameters4/5

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

Schema coverage is 100%, but the description adds meaning beyond the schema: it clarifies that org_user_id is required and explains the idempotency key behavior ('retrying with the same key returns the original result'), which is not fully captured in the schema description.

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

Purpose5/5

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

The description clearly states the action ('Re-enable'), the resource ('previously disabled organization member'), and the outcome ('so they can log in and use the platform again'). It distinguishes itself from sibling tool 'disable_user' by explicitly mentioning re-enabling.

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

Usage Guidelines4/5

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

Provides explicit requirements ('Requires the org_user_id') and constraints ('organization is fixed by your context—never pass an organization id', 'You cannot target a user more privileged than yourself'). While it doesn't name alternative tools, the context implies not to use if user is not disabled or if lacking privilege.

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

find_billing_workAInspect

Find the projects, tasks and subtasks in your organization where time can be tracked, optionally filtered by a name fragment. Use this to locate where to record work. Returns ids and names only.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional case-insensitive name fragment to filter projects (or tasks when project_id is supplied).
project_idNoOptional project id to drill into. When supplied, returns that project's tasks and subtasks.
max_resultsNoOptional maximum number of rows to return (1-50, default 50).
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool 'Returns ids and names only,' which is valuable. It does not explicitly state it's read-only, but the context strongly implies it. No mention of rate limits or authentication, but that's acceptable for a simple search tool.

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

Conciseness5/5

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

The description is two sentences, highly concise, and front-loaded with the core action. Every sentence adds value with no redundancy or fluff.

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

Completeness4/5

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

Given the low complexity (3 optional params, no output schema, no nested objects), the description is sufficient. It explains the purpose, filtering, and return content. It could mention pagination or error cases but is complete enough for the use case.

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

Parameters3/5

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

The input schema has 100% coverage with detailed descriptions for all three parameters. The description adds little extra: it mentions optional name filtering (already in schema) and implies drilling into projects (project_id). Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: finding projects, tasks, and subtasks for time tracking. It specifies the verb 'Find', the resource (projects/tasks/subtasks), and the scope (where time can be tracked). It distinguishes from siblings like 'list_projects' by focusing on billable work items.

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

Usage Guidelines4/5

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

The description provides clear guidance: 'Use this to locate where to record work.' It implies the tool is for identifying work items before logging time. However, it does not explicitly mention when not to use it or suggest alternative tools.

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

generate_invoiceAInspect

Generate a DRAFT invoice from a customer's approved billable hours over a billing period. The draft is editable and can be deleted before it is issued.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional notes to include on the invoice.
due_dateNoOptional explicit due date (ISO 8601). Overrides payment_terms-based calculation.
groupingNoHow to group approved hours into line items: "project" (default) or "task".
period_endYesBilling period end date (ISO 8601, e.g. 2026-05-31).
customer_idYesId of the customer to invoice.
period_startYesBilling period start date (ISO 8601, e.g. 2026-05-01).
payment_termsNoPayment terms string, e.g. "Net 30" (default).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

With no annotations provided, the description discloses that the invoice is a draft (editable, deletable) but does not mention side effects like failure if no approved hours or idempotency behavior. Some transparency but gaps remain.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and no unnecessary words. It efficiently conveys the core functionality and the draft nature.

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

Completeness2/5

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

Despite 8 parameters and no output schema, the description does not explain the return value or prerequisites (e.g., approved hours must exist). It lacks details needed for an agent to fully understand the tool's inputs and outputs.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description does not add additional meaning beyond providing high-level context (e.g., 'billing period'). Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool generates a draft invoice from approved billable hours over a billing period. It distinguishes it from sibling tools like 'issue_invoice' and 'create_credit_note' by emphasizing the draft state.

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

Usage Guidelines3/5

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

The description implies usage for draft creation but does not explicitly state when to use this tool versus alternatives like 'issue_invoice' or 'create_credit_note'. No guidance on prerequisites 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_billing_reportCInspect

Get billing summary for a customer over a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date in YYYY-MM-DD format
start_dateYesStart date in YYYY-MM-DD format
customer_idYesThe customer ID to get billing report for
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'get billing summary' without mentioning read-only nature, required permissions, data scope, or any side effects. The agent cannot infer important traits like whether the call is safe or destructive.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It misses the opportunity to front-load the most critical information and does not justify its brevity with completeness.

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

Completeness2/5

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

Given the three required parameters and absence of output schema, the description is incomplete. It does not explain what a 'billing summary' contains, how results are formatted, or any constraints like date range limits, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema fully describes each parameter. The description adds no additional meaning beyond that, earning the baseline score of 3.

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

Purpose3/5

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

The description states the tool gets a billing summary for a customer over a date range, which is clear but generic. It does not distinguish 'billing summary' from sibling tools like get_budget_health, get_unbilled_time, or get_invoice, leaving ambiguity about what this specific report contains.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With many billing-related siblings, the absence of usage context or explicit exclusions makes it difficult for an agent to select the correct tool.

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

get_budget_alertsAInspect

Get all budget alerts for the organization showing projects that are over or near budget

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as required permissions, data freshness, or whether alerts are organization-wide. For a read operation, it could mention lack of user-specific filtering or output format details.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose. Every word contributes meaning without redundancy.

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

Completeness3/5

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

Given the simplicity of the tool (no parameters, no output schema), the description covers the basic action and result. However, it could elaborate on what the alerts contain (e.g., project names, budget amounts) to improve completeness.

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

Parameters4/5

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

The tool has zero parameters, so the baseline score is 4. The description adds no parameter information, which is acceptable since there are no parameters to describe.

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

Purpose5/5

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

The description clearly specifies the verb 'Get', the resource 'budget alerts', and the scope 'for the organization showing projects that are over or near budget'. It effectively distinguishes from sibling tools like 'check_budget_limits' and 'get_budget_health'.

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

Usage Guidelines4/5

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

The description implicitly indicates when to use the tool: to retrieve alerts about over or near budget projects. It does not explicitly state when not to use or suggest alternatives, but the purpose is clear enough to guide selection among siblings.

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

get_budget_healthAInspect

Get overall budget health summary for the organization, including project counts by status (on-track, warning, critical), total remaining budget hours, and active alerts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations provided; description clearly indicates a read-only operation returning summary data. It could be more explicit about safety, but the nature is evident.

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

Conciseness5/5

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

Single sentence, concise, front-loads purpose, no wasted words.

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

Completeness5/5

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

No output schema, but description sufficiently explains return content (counts, hours, alerts). Low complexity, no missing details.

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

Parameters4/5

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

No parameters in schema (empty object), schema coverage 100%, baseline 4 is appropriate. Description adds no parameter detail but none needed.

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

Purpose5/5

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

The description uses specific verbs (Get) and resources (overall budget health summary) and clearly distinguishes from sibling tools like get_budget_alerts by mentioning project counts by status and remaining hours.

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

Usage Guidelines3/5

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

The description implies usage for retrieving budget health overview but does not explicitly state when not to use it or suggest alternatives among siblings.

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

get_cost_rate_historyAInspect

Get the cost-rate history for a specific user in the organization. Requires Finance role or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFirebase UID of the user whose cost-rate history to retrieve.
Behavior2/5

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

With no annotations provided, the description carries full burden. It reveals required authorization but gives no indication of read-only nature, output format, or pagination. This is insufficient for full behavioral transparency.

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

Conciseness5/5

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

Two concise sentences cover purpose and authorization with no unnecessary words or repetition.

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

Completeness3/5

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

The tool is simple with one parameter, but the description omits expected output details (e.g., list of cost-rate entries). Given no output schema, more context on return shape would improve completeness.

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

Parameters3/5

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

The description directly mirrors the schema's parameter description for 'user_id' and adds no additional context. Since schema coverage is 100%, baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('cost-rate history'), and specifies it is for a specific user. This clearly distinguishes it from sibling tools like 'set_user_cost_rate' or 'bulk_update_cost_rates'.

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

Usage Guidelines3/5

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

The description states a required role ('Finance role or higher'), but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions.

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

get_customer_infoAInspect

Get detailed information about a customer including health score and portfolio

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesThe unique identifier of the customer to retrieve information for
Behavior2/5

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

No annotations provided; description does not disclose behavioral traits like read-only nature, auth requirements, or side effects.

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

Conciseness5/5

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

Single concise sentence with no fluff.

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

Completeness4/5

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

Adequate for a simple retrieval tool with one parameter and no output schema; specifies returned data but lacks behavioral context.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter; description adds no additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves detailed customer info including health score and portfolio, distinguishing it from sibling tools like create_customer, update_customer, and list_customers.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives; intended use is implied by name and description but lacks explicit when-not-to-use or alternatives.

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

get_dashboard_metricsCInspect

Get organization dashboard metrics including utilization, revenue, and active projects

ParametersJSON Schema
NameRequiredDescriptionDefault
monthNoMonth to get metrics for in YYYY-MM format (e.g. 2026-01). Defaults to current month if not provided.
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it 'gets' metrics, with no mention of side effects, authentication needs, rate limits, or read-only nature. The description is too minimal for behavioral disclosure.

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

Conciseness4/5

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

The description is a single efficient sentence (12 words) with examples, no wasted words. Slightly improved conciseness but lacks structure for complex tools.

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

Completeness3/5

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

For a simple tool with one optional parameter and no output schema, the description covers the basic purpose. However, it does not describe return format, pagination, or scope limitations, which would be helpful for dashboard metrics.

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

Parameters3/5

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

Schema coverage is 100% with one optional parameter 'month' already well-described in the schema (format and default). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'organization dashboard metrics' with examples (utilization, revenue, active projects). It distinguishes from many sibling tools that are CRUD or specific operations, though it does not explicitly differentiate from other 'get' tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_billing_report or get_hours_summary. No when-not-to-use or exclusion criteria are provided.

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

get_employee_timesheetAInspect

Get an employee's timesheet report showing target hours, actual hours logged, and variance. Can look up by employee name or default to the requesting user.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date in YYYY-MM-DD format
start_dateYesStart date in YYYY-MM-DD format
employee_nameNoName of the employee to look up. Leave empty or say 'me' for your own timesheet.
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses read behavior (returns report) and lookup flexibility, but does not mention permissions, caching, or error conditions. Adequate but not comprehensive for a tool with zero annotation coverage.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose, no wasted words. Effectively conveys core functionality in minimal space.

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

Completeness4/5

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

With 3 simple params and no output schema, description adequately explains return fields (target, actual, variance) and lookup behavior. Slightly lacking on error cases or date range limitations, but sufficient for typical use.

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

Parameters3/5

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

Schema description coverage is 100% (all 3 params described). Description adds context for employee_name (defaults to self, 'me' accepted), but adds minimal value beyond schema for start_date and end_date. Baseline 3 appropriate.

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

Purpose5/5

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

Clear verb 'get' with specific resource 'employee timesheet report' and explicit output fields (target hours, actual hours, variance). Distinguishes from siblings like get_my_time_entries by offering lookup by employee name or defaulting to requesting user.

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

Usage Guidelines3/5

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

Description implies use for obtaining timesheet reports with variance, and notes optional employee name, but does not explicitly state when to use instead of related tools like get_my_time_entries or get_hours_summary. Lacks when-not-to-use guidance or alternatives.

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

get_frame_order_utilizationAInspect

Report each frame order's contracted cap vs billed draw-down vs remaining, for both hours and amount, with utilization percentage. Optionally filtered by customer and/or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status: Open or Closed (optional).
customer_idNoFilter by customer id (optional).
Behavior3/5

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

No annotations are present, so the description must convey behavioral traits. It indicates a read-only report, which is clear from the word 'Report', but does not disclose other traits like permissions, data scope (all frame orders?), or whether it is safe or destructive. The description is minimally transparent.

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

Conciseness4/5

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

The description is a single sentence that front-loads the purpose and lists key metrics. It is concise with minimal redundancy, though slightly long for a one-sentence structure.

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

Completeness4/5

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

Given no output schema, the description covers the essential return information (metrics for hours and amount, utilization percentage) and optional filters. It lacks details on sorting, pagination, or default scope, but is adequate for a simple report tool.

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

Parameters3/5

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

Schema description coverage is 100% with adequate descriptions for both parameters (status, customer_id). The description only reiterates that filtering is optional, adding no new meaning beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the tool reports frame order utilization metrics (contracted cap, billed draw-down, remaining, utilization percentage) for both hours and amount, with optional filters. This is specific and distinguishes it from sibling tools like get_resource_utilization which likely focus on resources rather than frame orders.

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

Usage Guidelines3/5

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

The description mentions optional filters by customer and status, implying when to use it for filtered reports, but does not explicitly state when to use this tool versus alternatives or when not to use it. No guidance on prerequisites or exclusions is provided.

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

get_hours_summaryBInspect

Get a summary of hours logged for a user or team over a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope of the summary: 'user' for individual user hours, 'team' for organization-wide overview. Defaults to 'user'.
end_dateYesEnd date for the summary period (ISO 8601 format, e.g. 2026-01-31)
start_dateYesStart date for the summary period (ISO 8601 format, e.g. 2026-01-01)
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or error handling. As an aggregation tool, the description should at minimum indicate that it aggregates existing data without modifications.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded. It contains no redundant information and efficiently communicates the tool's core function.

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

Completeness2/5

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

Despite having no output schema, the description does not hint at the structure or contents of the returned summary (e.g., total hours, breakdown by day or user). This gap forces the agent to infer return format from the tool name, which may lead to incorrect assumptions.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already describes all parameters fully. The description adds no new meaning beyond what is in the schema (e.g., 'for a user or team' is already captured by the 'scope' parameter description). Baseline score of 3 is appropriate.

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

Purpose4/5

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

Description clearly states verb (Get), resource (summary of hours logged), and scope (user or team over a date range). However, it does not distinguish this tool from siblings like get_my_time_entries, get_employee_timesheet, or get_resource_utilization, which could overlap in purpose.

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

Usage Guidelines3/5

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

The description implies usage for summarizing hours but does not explicitly state when to use this tool over alternatives. No guidance on prerequisites or exclusions is provided, leaving the agent to infer context from the tool name alone.

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

get_import_templateAInspect

Return the CSV template for bulk-importing the work hierarchy (customers, projects, tasks, subtasks). Fill the template and call validate_import before commit_import.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations provided, but the description is straightforward and implies a safe read operation. Does not conceal any behavioral traits; however, it could mention whether the template is static or dynamic.

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

Conciseness5/5

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

Two concise sentences with no wasted words. Front-loaded with purpose, then provides usage advice.

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

Completeness5/5

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

Completely describes the tool's purpose and how to use it in the broader workflow. No output schema needed; description suffices for a parameterless retrieval tool.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. Description adds no parameter info beyond schema; baseline according to rule is 4.

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

Purpose5/5

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

The description clearly states it returns a CSV template for bulk-importing the work hierarchy, specifying verb 'return' and resource 'CSV template' with details on hierarchy levels (customers, projects, tasks, subtasks). It distinguishes from siblings like validate_import and commit_import.

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

Usage Guidelines5/5

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

Provides explicit workflow: get template, fill it, then call validate_import before commit_import. Guides the agent on the correct sequence of tool calls.

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

get_invoiceAInspect

Get the full details of a specific invoice by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesID of the invoice to retrieve (required).
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It states the action is a read ('Get'), implying no side effects. However, it does not disclose authorization requirements, rate limits, or what constitutes 'full details'. This is adequate but minimal.

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

Conciseness5/5

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

The description is a single sentence of 10 words, front-loading the purpose. Every word is necessary and there is no superfluous information.

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

Completeness3/5

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

Given the tool's low complexity (1 param, no output schema), the description is adequate but could be improved by specifying what fields are returned. It mentions 'full details' but that is vague. With no output schema, a bit more detail on return value would enhance completeness.

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

Parameters3/5

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

The schema covers 100% of parameters (just invoice_id) with a description. The tool description adds 'full details' but does not provide additional semantic meaning beyond the schema. Baseline for high schema coverage is 3.

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

Purpose5/5

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

The description clearly states the tool retrieves the full details of a specific invoice by ID. It uses a specific verb ('Get') and resource ('invoice'), and the 'by ID' distinguishes it from list_invoices (which retrieves multiple).

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

Usage Guidelines4/5

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

The description implies that this tool is for retrieving a single invoice by ID, contrasting with list_invoices for listing. However, it does not explicitly state when not to use it or mention any prerequisites or alternatives.

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

get_my_time_entriesAInspect

Get the current user's time entry analytics for a date range, including hours breakdown by project and customer, billable vs non-billable split, and target comparison

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date for the analytics period (ISO 8601 format, e.g. 2026-01-31)
start_dateYesStart date for the analytics period (ISO 8601 format, e.g. 2026-01-01)
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It describes the return data structure but does not explicitly confirm read-only behavior, authentication requirements, rate limits, or handle edge cases (e.g., no data in date range). It is adequate but not thorough.

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

Conciseness5/5

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

The description is a single, well-structured sentence that efficiently conveys the tool's purpose and output. No unnecessary words.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers the core purpose and return details adequately. It could mention that results are scoped to the current user (implied by name) or any pagination, but it is largely complete for a straightforward analytics tool.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters have clear schema descriptions (ISO 8601 format). The tool description adds no additional semantic meaning beyond repeating 'date range', so it meets the baseline but does not enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves time entry analytics for the current user over a date range, listing specific breakdowns (project, customer, billable, target comparison). This differentiates it from siblings like get_hours_summary or get_dashboard_metrics.

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

Usage Guidelines3/5

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

The description implies usage for personal analytics, but does not explicitly state when to use versus alternatives like get_hours_summary or get_billing_report, nor does it provide exclusions or prerequisites.

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

get_project_statusBInspect

Get detailed project status including budget, hours, and task breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe unique identifier of the project to retrieve status for
Behavior2/5

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

No annotations provided, so the description must convey behavioral traits. It states 'Get detailed project status', implying a read-only operation, but does not explicitly confirm idempotency, safety, authorization requirements, or any side effects. The description is minimally transparent.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded and concise. Every word adds value without redundancy.

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

Completeness4/5

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

Given the single parameter and no output schema, the description adequately explains the nature of the response. It mentions key components (budget, hours, task breakdown). However, given the number of sibling tools, additional context on what distinguishes this status from other reports would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with a clear parameter description for 'project_id'. The description adds context about what the response includes (budget, hours, task breakdown), but does not add meaning specific to the parameter itself. With high schema coverage, a score of 3 is baseline and adequate.

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

Purpose4/5

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

The description clearly states the tool retrieves detailed project status covering budget, hours, and task breakdown. The verb 'Get' and resource 'project status' are specific. While it doesn't explicitly differentiate from siblings like 'get_hours_summary', the combined scope provides implicit differentiation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'get_hours_summary' or 'get_budget_health'. The description lacks any when-to-use, when-not-to-use, or prerequisite information.

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

get_project_teamAInspect

Get the people associated with a project: who is ASSIGNED to it (formally responsible / accountable) and the TOP CONTRIBUTORS by hours logged (who is actually doing the work and driving the budget/overrun). Use this to answer 'who is responsible for / working on a project', especially when a project is over budget. Budget-alert results include the project_id you can pass directly into this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe unique identifier of the project. Resolve a project name to its ID with find_billing_work or list_projects first.
Behavior4/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It explains that the tool outputs assigned and top contributing people by hours logged, and mentions budget overrun relevance. This provides adequate transparency about the tool's read-only and query-like nature.

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

Conciseness5/5

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

The description is concise and well-structured, with three front-loaded sentences: first stating the core function, second specifying the use case, and third linking to budget alerts. There is no extraneous information.

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

Completeness4/5

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

Given the absence of an output schema, the description sufficiently explains the return values (assigned and top contributors). It covers the primary use case effectively, though additional details on output structure or pagination would enhance completeness.

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

Parameters4/5

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

The only parameter, project_id, is well-described in the schema. The description adds value by noting that budget-alert results provide the project_id, aiding the agent in parameter resolution. The high schema coverage (100%) is complemented by this additional context.

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

Purpose5/5

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

The description clearly identifies the tool's function: retrieving people associated with a project, specifically assigned and top contributors. It distinguishes the tool by highlighting its use for answering 'who is responsible for / working on a project' and ties it to budget overrun scenarios, setting it apart from sibling tools.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool, particularly for budget-alert contexts, and advises that budget-alert results contain the project_id for direct use. While it does not list alternatives, the context is clear enough for an agent to decide.

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

get_resource_utilizationBInspect

Get team resource utilization summary showing target hours, actual hours, billable hours, and utilization percentage for the organization

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesEnd date for the utilization period (ISO 8601 format, e.g. 2026-01-31)
start_dateYesStart date for the utilization period (ISO 8601 format, e.g. 2026-01-01)
Behavior3/5

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

Description indicates the output includes specific metrics but does not disclose read-only nature, authorization requirements, or aggregation level. Since no annotations are provided, the description carries the full burden, and it is minimally sufficient for a simple query tool.

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

Conciseness4/5

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

Single sentence effectively conveys the tool's purpose without extraneous words. Could be slightly improved with a structured list of metrics, but current form is efficient and clear.

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

Completeness2/5

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

Lacks important context such as whether results are per-user or aggregate, pagination, or response format. Given no output schema, the description should provide more detail to fully inform an agent.

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

Parameters3/5

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

Schema coverage is 100% with both start_date and end_date already described in ISO format. The description does not add further meaning beyond the schema, meeting the baseline for high coverage.

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

Purpose4/5

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

Description clearly specifies a 'Get' operation on 'team resource utilization summary' and lists the key metrics (target hours, actual hours, billable hours, utilization percentage). It distinguishes from sibling tools like get_hours_summary and get_billing_report by focusing on utilization, though no explicit differentiation is given.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_frame_order_utilization or get_budget_health. The description implies usage for resource reporting but provides no exclusions or context for decision-making.

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

get_unbilled_timeBInspect

Get a summary of unbilled time across the organization, including total hours, total amount, number of entries, and aging information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

With no annotations, the description must carry behavioral disclosure. It states the tool returns a summary with specific fields, but does not mention authentication needs, data freshness, organizational scope beyond the brief phrase, or any side effects. The 'aging information' hint is useful but insufficient.

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

Conciseness5/5

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

The description is a single, direct sentence with no extraneous information. It front-loads the core function and list of included data points, earning maximum efficiency.

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

Completeness3/5

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

While the description covers the basic output fields, it lacks details on aggregation level, time range, or update frequency. Given no output schema, more context would help the agent understand the exact structure and constraints.

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

Parameters4/5

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

The tool has zero parameters, so the schema is empty with 100% coverage. Per guidelines, baseline is 4. The description does not add parameter details as none exist, so this score is appropriate.

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

Purpose4/5

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

The description clearly states the tool retrieves a summary of unbilled time across the organization and lists specific fields (total hours, total amount, entries, aging). However, it does not explicitly distinguish this from sibling tools like get_billing_report or get_hours_summary.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context on situations that favor this tool over siblings, e.g., get_billing_report for billed time.

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

invite_userAInspect

Invite a person to join your organization by email at a chosen role. The organization is fixed by your context - never pass an organization id. Valid roles: Admin, Finance, Manager, Member, Viewer (you can only invite at a role no more privileged than your own). The invitee receives an email with an acceptance link.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesRole to grant on acceptance (required). One of: Admin, Finance, Manager, Member, Viewer. You cannot invite at a role more privileged than your own.
emailYesEmail address of the person to invite (required).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

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

No annotations provided, so description carries the burden. It discloses key outcomes: email sent with acceptance link. But does not detail edge cases, rate limits, or idempotency (though mentioned in schema).

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

Conciseness4/5

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

Two sentences with essential information front-loaded. Could be slightly more structured, but it is efficient and to the point.

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

Completeness4/5

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

Given no output schema, description explains the post-invocation outcome (email with acceptance link). It covers the main purpose and constraints, though missing success/failure details.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds context about role hierarchy but does not significantly enhance parameter understanding beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the action: 'Invite a person to join your organization by email at a chosen role.' It also specifies the fixed organization context, distinguishing it from sibling tools like cancel_invite or resend_invite.

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

Usage Guidelines4/5

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

Provides explicit guidance on when to use, including role hierarchy and fixed organization. However, it lacks explicit exclusion criteria (e.g., when the user is already invited or exists).

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

issue_invoiceAInspect

Issue a Draft invoice: assigns a gapless invoice number, locks the invoice as immutable, and marks source hours as Invoiced. IRREVERSIBLE — corrections require void + reissue. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesId of the Draft invoice to issue.
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior5/5

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

Discloses irreversibility, token expiration, and the exact state changes. Without annotations, this fully covers the behavior an agent needs to know.

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

Conciseness5/5

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

Four focused sentences with zero wasted words. Front-loaded with the core action, then details. Excellent structure.

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

Completeness5/5

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

Considering the parameter count, lack of annotations and output schema, the description provides all necessary context: workflow, irreversibility, token expiry, idempotency. No gaps.

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

Parameters4/5

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

Schema coverage is 100% and the description adds workflow context for confirm_token and idempotency_key. The invoice_id is implicit in both calls. The description enhances understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the action (Issue a Draft invoice), the effects (assigns gapless number, locks immutable, marks hours invoiced), and the two-step process. It distinguishes from siblings like void_invoice or send_invoice.

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

Usage Guidelines4/5

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

Explicit guidance on the preview-then-commit pattern is provided, including the requirement for confirm_token and idempotency_key. No explicit when-not-to-use, but the preview mode acts as a safeguard.

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

list_customersAInspect

List all customers in the organization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only states 'list all customers', which suggests a read-only operation but does not mention pagination, rate limits, authentication requirements, or whether it returns all customers at once. The description adds minimal behavioral context beyond the tool name.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extra words. Every part serves a purpose, and it is highly efficient for a simple list tool.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no output schema), the description covers the essential purpose. However, it omits details about the return format (e.g., what fields are returned). Since there is no output schema, providing a brief hint about the return structure would make it more complete.

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

Parameters4/5

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

The input schema has zero parameters, so schema coverage is 100%. Per the rubric, baseline is 4. The description does not need to explain parameters since there are none, and it adds no extra meaning necessary beyond the schema being empty.

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

Purpose5/5

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

The description clearly states the verb 'list', the resource 'customers', and the scope 'in the organization'. It distinguishes itself from sibling tools like create_customer, delete_customer, get_customer_info by implying a full listing rather than a single entity or mutation.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. However, the simplicity of the tool (no parameters, read-only) implies usage when a complete list of customers is needed, without guidance on when not to use or refer to other tools.

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

list_favoritesAInspect

List the current user's saved time-entry favorites (quick-entry shortcuts).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

With no annotations, the description carries full burden. It only states what the tool does without disclosing any behavioral traits such as read-only status, pagination, sorting, or rate limits.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words, efficiently conveying the tool's purpose.

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

Completeness4/5

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

For a simple list tool with no parameters and no output schema, the description is adequate. It could optionally hint at the return structure (e.g., 'returns an array of favorites'), but it is mostly complete given the context.

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

Parameters4/5

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

There are zero parameters, so no parameter information is needed. The description adds no param semantics beyond what the schema provides, but the baseline for 0 params is 4.

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

Purpose5/5

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

The description explicitly states the action ('List') and the resource ('current user's saved time-entry favorites'), distinguishing it from sibling tools like create_favorite, delete_favorite, and use_favorite.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives are given, but the action is straightforward; context implies it is for viewing favorites rather than creating or using them.

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

list_invoicesAInspect

List invoices for your organization, optionally filtered by customer and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOptional: filter by invoice status (e.g. Draft, Issued, Paid, Void).
page_sizeNoNumber of results per page (default 20, max 100).
customer_idNoOptional: filter by customer ID.
page_numberNoPage number, 1-based (default 1).
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states a read operation (list) but does not disclose pagination, ordering, or any side effects. The schema includes pagination parameters but the description omits behavioral details, leaving gaps for a read tool.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the main action, and contains no extraneous information. Every part earns its place.

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

Completeness3/5

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

For a list tool with 4 parameters and no output schema, the description adequately states purpose and filters but lacks details on pagination behavior or default sorting. It is minimal but functional for a straightforward listing operation.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description mentions two parameters (customer_id and status) that align with the schema but adds no new meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'list' and resource 'invoices', and identifies optional filtering by customer and status. This differentiates it from siblings like get_invoice (single invoice) and generate_invoice (create action).

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

Usage Guidelines3/5

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

The description implies when to use (to list invoices with optional filters) but does not explicitly mention alternatives or when not to use. It lacks guidance on choosing between list_invoices and get_invoice for specific scenarios.

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

list_my_time_entriesAInspect

List the current user's own individual time entries for a date range, with project name, task/subtask ids, hours, description, billable flag and status. Use this to see exactly what was logged (the per-entry detail), as opposed to aggregated totals.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional maximum number of entries to return (1-200, default 200). Entries are returned most-recent first.
end_dateYesEnd date of the range (ISO 8601 format, e.g. 2026-01-31)
start_dateYesStart date of the range (ISO 8601 format, e.g. 2026-01-01)
Behavior4/5

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

No annotations are present, so the description must fully disclose behavior. It implies a read-only operation by stating 'list' and returns entries. However, it does not explicitly mention that no data is modified. It also omits the ordering detail (most-recent first) that is present in the schema description for the limit parameter. Minor omission, but overall clear.

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

Conciseness5/5

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

Two sentences, each serving a distinct purpose: the first states what the tool does, the second gives usage context. No filler or redundancy. Highly efficient.

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

Completeness5/5

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

Given the tool's simplicity, no output schema, and high sibling count, the description provides sufficient context: it names the fields returned, specifies date range, and clarifies it's per-entry detail. This is enough for an agent to correctly select and invoke the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The tool description does not add any extra meaning beyond the schema. It does list the return fields, which indirectly relates to parameters, but does not enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool lists the current user's own time entries for a date range, specifying the fields returned (project name, task/subtask ids, hours, etc.). It distinctively contrasts with aggregated totals, which differentiates it from sibling tools like get_hours_summary or get_billing_report.

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

Usage Guidelines5/5

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

Explicit usage guidance is provided: 'Use this to see exactly what was logged (the per-entry detail), as opposed to aggregated totals.' This tells the agent when to use this tool instead of alternatives for aggregated data, which is clear and actionable.

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

list_projectsBInspect

List all projects in the organization with their status and budget information

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNoOptional customer ID to filter projects by customer
Behavior2/5

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

Without annotations, the description is the sole source of behavioral info. It does not disclose whether all projects (including archived or hidden) are listed, whether pagination or sorting applies, or what permissions are required. The phrase 'in the organization' implies scope but lacks nuance.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the primary action and result. It contains no redundant words and efficiently conveys the tool's core purpose.

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

Completeness3/5

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

The description mentions output includes status and budget, but lacks details on return format, potential fields, or behavior when no customer_id is given. Given no output schema, more information about what 'all projects' entails (e.g., active, archived) would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The tool description itself does not add extra meaning about parameters beyond what the input schema already provides. The schema already describes customer_id as an optional filter.

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

Purpose5/5

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

The description clearly states the tool lists all projects in the organization, specifying that it includes status and budget information. This verb-resource combination is specific and distinguishes it from sibling tools like get_project_status which retrieves details for a single project.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives such as get_project_status or check_budget_limits. The description does not mention exclusions or contextual cues for selection, leaving the agent without decision rules.

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

list_recycle_binAInspect

List soft-deleted entities currently in the recycle bin, optionally filtered by entity type and paged.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number (default 1).
page_sizeNoItems per page (default 20).
entity_typeNoFilter by type: Customer, Project, Task, or SubTask. Omit for all types.
Behavior3/5

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

With no annotations, description carries burden but only states it lists items. Does not disclose that it is a safe read operation, auth needs, or implications (e.g., does not modify data).

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

Conciseness5/5

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

Single sentence, front-loaded with primary action, no wasted words. Efficiently conveys core functionality.

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

Completeness4/5

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

Adequately describes tool for listing filtered and paged items. Lacks mention of return format or behavior when bin is empty, but sufficient for basic usage.

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

Parameters3/5

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

Schema descriptions cover all 3 parameters (100% coverage). Description adds no extra meaning beyond the schema.

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

Purpose5/5

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

Description clearly states verb 'List', resource 'soft-deleted entities in the recycle bin', and optional filtering and paging. Distinguishes from sibling tools like 'restore_entity' or 'permanent_delete_entity'.

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

Usage Guidelines3/5

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

Implies usage for viewing soft-deleted entities, but does not provide explicit when-to-use or when-not-to-use guidance nor mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scheduled_reportsAInspect

List all scheduled report definitions for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states it lists all definitions, implying a read operation. However, it does not disclose pagination, performance, or authorization requirements. Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler. The information is front-loaded and to the point. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is adequate. It could mention if the list is paginated or the full set, but it is sufficient for the agent to understand the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter information. Baseline is 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (scheduled report definitions) and specifies the scope (for the organization). This distinguishes it from sibling tools like create_scheduled_report or cancel_scheduled_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies it is for viewing all definitions, but lacks context about alternatives or prerequisites. Given the simplicity, a basic score is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

log_timeAInspect

Create a single time entry on a subtask for the current user. Requires permission to log time.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of the work (ISO 8601 format, e.g. 2026-01-15).
textNoOptional description of the work performed.
hoursYesNumber of hours worked (greater than 0 and at most 24).
start_timeNoOptional start time of day in 24-hour HH:mm (e.g. "12:00"). Set this when the user gives a specific time or a time range (and put the range length in 'hours'); the entry then runs from this time for 'hours'. Defaults to 09:00 when omitted.
subtask_idYesId of the subtask to log time against. All time entries are recorded at the subtask level.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states creation scope and permission, but lacks details on idempotency, side effects (e.g., does it overwrite?), validation, or constraints beyond permission. Incomplete behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, 18 words, front-loaded with purpose. Every word adds value; no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is minimal. It covers purpose and permission but omits return value, error handling, and edge cases. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all parameters clearly. The tool description adds no additional meaning beyond what's in the schema, earning baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'create', object 'single time entry on a subtask', and user scope 'for the current user'. Differentiates from sibling tools like start_timer or bulk_create_time_reports by specifying subtask-level entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions required permission ('Requires permission to log time') but does not provide when to use vs alternatives like start_timer or create_time_report. No explicit context for exclusion or decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_user_work_scheduleAInspect

Manage YOUR OWN personal work schedule. action is one of: create, update, delete, assign (assign = make a schedule your active one). For update/delete/assign, provide schedule_id. default_hours is your standard daily hours (for a simple schedule). The organization is fixed by your context, and you can only manage your own schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional schedule notes/name.
actionYesWhat to do (required): create, update, delete, or assign.
is_activeNoWhether this schedule is active (create/update).
schedule_idNoId of your schedule (required for update, delete, assign).
default_hoursNoStandard daily working hours for a simple schedule (e.g. 8).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description covers behavioral aspects: action types, required parameters, and scoping to own schedule. It does not detail side effects beyond deletion, but the behavior is straightforward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Front-loaded with purpose and key usage notes. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but for a CRUD-like tool, the description covers purpose, actions, and key parameters. Could mention return values, but adequate for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds context: 'action is one of: create, update, delete, assign' and clarifies that default_hours is for a simple schedule. This enriches understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages 'YOUR OWN personal work schedule' with specific actions (create, update, delete, assign), distinguishing it from sibling tools like approve_timesheet or assign_user_to_customer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each action and that schedule_id is required for update/delete/assign. It also notes that the organization is fixed and only personal schedules can be managed. No explicit exclusion of alternatives, but enough guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_invoice_paidAInspect

Mark an issued or sent invoice as Paid. Optionally record the paid amount and payment date. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
paid_dateNoOptional payment date (ISO 8601). Defaults to today.
invoice_idYesId of the invoice to mark as paid.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It mentions the preview mode and optional payment date, but does not clarify potential irreversibility or side effects of marking an invoice paid. The idempotency key behavior is described only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence states the action, the second explains the preview vs. confirm behavior and optional parameters. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core workflow but omits important details: no mention of the paid_amount parameter (which appears in text but not in schema), no description of return values (no output schema), and no discussion of error cases or prerequisites. For a mutation tool with 4 parameters, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds 'Optionally record the paid amount and payment date,' but 'paid amount' is not a parameter in the schema—only 'paid_date' exists. This mismatch reduces added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'Mark an issued or sent invoice as Paid.' It uses a specific verb ('mark') and resource ('invoice'), distinguishing it from sibling tools like 'issue_invoice', 'send_invoice', or 'void_invoice'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the preview vs. actual write behavior via confirm=true, providing usage context. However, it does not explicitly state when to use this tool over alternatives (e.g., when not to use, prerequisites like invoice status).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_time_invoicedBInspect

Mark one or more time reports as invoiced, optionally linking them to an existing invoice. Requires Manager role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
invoice_idNoOptional ID of an existing invoice to link these time reports to.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
time_report_idsYesList of time report IDs to mark as invoiced (required, at least one).
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only states the action 'mark as invoiced' and optional linking, but does not mention side effects (e.g., whether time reports are locked, if edits are allowed afterward) or the confirmation/preview behavior (which is only in the schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and includes a necessary role requirement. Every word is relevant and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is under-informative. It does not explain the impact of marking time as invoiced (e.g., whether it can be reversed, how it affects billing reports), the preview mode, or idempotency behavior. An agent would lack key context to use the tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value by mentioning 'optionally linking to an existing invoice' (referencing invoice_id) but does not provide further explanation beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'mark' and resource 'time reports as invoiced', and mentions optional linking to an invoice. It distinguishes from sibling tools like 'mark_invoice_paid' by specifying it operates on time reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires Manager role or above', providing a precondition. However, it does not specify when to use this tool versus alternatives (e.g., when time reports should not be marked as invoiced) or any context about workflow integration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_projectAInspect

Move a billing project to a different customer within your organization. Both the project and the destination customer must belong to your organization. Requires Manager role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to move (required).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
new_customer_idYesID of the destination customer (required, must belong to your organization).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the mutation (move) and access requirement (Manager role), but does not mention potential side effects (e.g., impact on billing or timesheets) or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each serving a clear purpose: first states the operation and constraints, second adds role requirement. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description covers purpose, constraints, and role requirement. It is slightly incomplete in that it does not describe what happens after the move (e.g., billing changes), but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides; it only restates parameter IDs and requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (move), the resource (billing project), and the destination (different customer within organization). It distinguishes from sibling tools like move_task and move_subtask.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies when to use the tool (moving a billing project to a different customer) and prerequisites (both must belong to your organization, requires Manager role). It does not explicitly mention when not to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_subtaskAInspect

Move a subtask to a different task within your organization. Both the subtask and the destination task must belong to your organization. Requires Manager role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
subtask_idYesID of the subtask to move (required).
new_task_idYesID of the destination task (required, must belong to your organization).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It mentions the move operation and role requirement, but does not disclose potential side effects (e.g., whether child subtasks are moved, impact on timesheets) or the non-idempotent nature (implied by idempotency_key). The description is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. Every sentence carries essential information: action, constraints, and role requirement. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the action and prerequisites but lacks information about the return value or potential errors. Since there is no output schema, an agent might need additional context about what to expect after a successful move. Still sufficient for a straightforward mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying that both subtask_id and new_task_id must belong to the same organization, a constraint not fully present in the schema. It also re-emphasizes the idempotency_key purpose. This additional context helps the agent understand parameter constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('move'), the resource ('subtask'), and the destination ('different task'). It also includes the scope ('within your organization'). This distinguishes it from sibling tools like move_task (moves tasks between projects) and update_subtask (modifies properties).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides contextual constraints: both subtask and destination task must belong to your organization, and requires Manager role or above. It does not explicitly state when not to use the tool or suggest alternatives, but the constraints are clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_taskAInspect

Move a task to a different billing project within your organization. Both the task and the destination project must belong to your organization. Requires Manager role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to move (required).
new_project_idYesID of the destination project (required, must belong to your organization).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses authorization requirements (Manager role) and a constraint (task and project must belong to the org). However, it does not explain side effects of moving a task (e.g., changes to assignments or dependencies). Without annotations, more transparency would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no filler words. Every sentence adds valuable information: purpose, constraints, and permission requirements. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple move operation with no output schema, the description covers core purpose, prerequisites, and role. Missing details like return value or confirmation of success, but adequate for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already explains each parameter. The description adds no further semantic detail about the parameters, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Move' and the resource 'task', specifying the scope ('within your organization'). It distinguishes from sibling tools like 'move_project' and 'move_subtask' by focusing on tasks and billing projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states prerequisites: both task and project must belong to your organization, and requires Manager role or above. This gives clear context for when the tool can be used, though it doesn't mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

permanent_delete_entityAInspect

Permanently and IRREVERSIBLY hard-delete an entity from the recycle bin. The entity and all its children are removed from the database — this cannot be undone. Requires Admin role. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. entity_type must be one of: Customer, Project, Task, SubTask.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesId of the recycle-bin entity to permanently delete.
entity_typeYesType of entity to permanently delete. One of: Customer, Project, Task, SubTask.
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the destructive and irreversible nature, the two-step process, token expiry (~10 minutes), and idempotency key behavior. It does not mention rate limits or concurrency but covers core behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the critical information (irreversible deletion) and then detailing the process and allowed types. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers purpose, usage, parameters, and admin requirement. It does not describe what the preview returns (just a token?), but is otherwise complete for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds context beyond schema descriptions: it explains that confirm_token comes from the preview call and that idempotency_key prevents duplicate actions. This aids the agent in understanding the two-step flow.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool permanently hard-deletes an entity from the recycle bin, emphasizing irreversibility. It specifies the allowed entity types (Customer, Project, Task, SubTask) and distinguishes this from sibling tools like delete and restore.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit instructions: call once with no token to preview, then re-call with confirm_token and idempotency_key to commit. It also notes the Admin role requirement. However, it does not explicitly state when not to use it or mention alternatives like restore_entity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recall_timesheetAInspect

Withdraw your submitted timesheet for a given month back to Draft (un-submit), reopening entries for editing. Only valid while the period is Submitted — after approval ask a manager to reopen it. Supply year and month (1-12).

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesCalendar year of the month to recall (e.g. 2026).
monthYesCalendar month to recall (1-12).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description discloses the state change (Submitted to Draft) and effect (reopening entries). It does not detail permissions or side effects, but is adequate for the action's complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First sentence states action and result; second adds usage constraint and parameter hints. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters and no output schema, the description covers the main purpose and constraints. It lacks error scenarios (e.g., invalid state) but is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds little beyond repeating year/month format. It reinforces '1-12' for month but does not mention idempotency_key, which is already described well in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool withdraws a submitted timesheet back to Draft, reopening entries. It specifies the action on the timesheet resource and distinguishes from siblings like approve, reject, submit, and reopen.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Only valid while the period is Submitted — after approval ask a manager to reopen it.' This provides 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.

reissue_invoiceAInspect

Void an issued invoice and clone it into a new editable Draft (void + reissue). The original is voided and retained for audit; the new Draft can be edited then re-issued. The void is IRREVERSIBLE. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesId of the issued invoice to void and reissue as a new Draft.
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses key behaviors: void is IRREVERSIBLE, original retained for audit, token expires in ~10 minutes, idempotency ensures safe retries. Could add prerequisites (e.g., invoice must be 'issued') but overall strong transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no redundant information. Action verb first, then key constraints, then usage instructions. Excellent front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential behavior and usage. Lacks explicit mention of preview return value (though implied by 'returned confirm_token'). Adequate for a tool with no output schema, but slightly incomplete without specifying preview response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 3 parameters are described in schema (100% coverage). Description summarizes the flow but adds little beyond schema explanations. Baseline 3 is appropriate as description does not enrich parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool voids an issued invoice and creates a new editable Draft. It specifies the dual operation (void + reissue) and distinguishes from sibling void_invoice by including reissue step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains the two-step preview-commit pattern: call once without token to preview, then re-call with confirm_token and idempotency_key to commit. Warns that void is irreversible. Does not contrast with alternatives like void_invoice but context from name and siblings makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reject_timesheetAInspect

Reject a submitted timesheet period, returning it to the reporter for correction. The period and its time reports revert to Rejected (editable). A rejection comment is required. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesRejection reason shown to the reporter. Required so they know what to fix.
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
submission_period_idYesId of the submission period to reject (from get_pending_approvals or list_approval_history).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the status change to 'Rejected (editable)', the need for confirm=true to write, and role restrictions. However, it does not cover potential idempotency behavior or error states, missing some transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five concise sentences front-load the key action and outcome. Each sentence adds a distinct point: action, result, comment requirement, confirm behavior, role restrictions. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description should explain return values. It mentions preview returns 'nothing written' but does not specify what the successful rejection response contains (e.g., updated submission period). Also omits error scenarios like already approved states. Adequate but incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds value over the schema for 'comment' (purpose of rejection reason), 'confirm' (preview vs action), and 'submission_period_id' (source hint). Only 'idempotency_key' lacks added detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'reject' and the resource 'submitted timesheet period', and specifies the outcome of returning for correction. It distinguishes well from sibling tools like 'approve_timesheet' and 'reopen_timesheet'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context, including role requirements (Manager/Admin/Owner, not Finance), the confirm flag for execution vs preview, and the requirement of a rejection comment. No explicit alternatives mentioned but guidelines are comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_userAInspect

Permanently remove an organization member. This action is IRREVERSIBLE — the user must be re-invited to rejoin. Returns a preview; re-call with the confirm_token and an idempotency_key to commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_user_idYesId of the OrganizationUser record to remove (not the Firebase userId).
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses that the action is irreversible, requires a two-step workflow, token expiration (~10 min), and idempotency key behavior. This provides complete behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, with no filler. It front-loads the purpose and provides the critical workflow details efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description adequately covers the workflow. It could mention what the commit returns, but the agent can infer from subsequent usage. Slightly incomplete but still strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds significant meaning: clarifies org_user_id is OrganizationUser ID (not Firebase userId), explains confirm_token origin and expiration, and idempotency_key's purpose to prevent duplicate actions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'remove' with the clear resource 'organization member', and the context of permanence distinguishes it from siblings like 'disable_user' which is temporary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains a two-step process (preview then commit with token and idempotency_key) and warns about irreversibility. It does not explicitly state when to use vs. alternatives like disable_user, but the usage pattern is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_user_from_customerAInspect

Remove a user's assignment from a customer, revoking their access to the customer's projects and tasks. Requires confirm=true to proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
customer_idYesId of the customer to remove the user from.
org_user_idYesOrganizationUsers.Id of the member to unassign.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description discloses the confirm behavior and revocation of access but lacks details on reversibility, permissions, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters and no output schema, description covers main purpose and confirm behavior but omits details on idempotency and consequences of removal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema documentation covers all parameters (100% coverage); description adds minimal value by reiterating confirm requirement, but no new semantics for other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool removes a user's assignment from a customer and revokes access to projects and tasks, distinguishing it from siblings like remove_user and remove_user_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the confirm=true requirement but does not provide explicit when-to-use or alternative tool guidance, though context can be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_user_projectAInspect

Remove an organization member's assignment from a specific project. The user will no longer have direct visibility to that project (they may still see it via a customer assignment). Requires org_user_id and project_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesId of the project to remove the user from.
org_user_idYesId of the OrganizationUser to remove from the project (not the Firebase user id).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description effectively communicates that the tool removes assignment, affects visibility, and has permission restrictions. It mentions the idempotency_key parameter but does not elaborate on its behavior. It also omits details about the return value or side effects beyond the visibility note.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with four sentences, each serving a distinct purpose: purpose, effect, required parameters, and a privilege constraint. It is front-loaded with the core action and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description covers the essential behavioral aspects, required parameters, and important contextual rules. However, it does not describe the response format or confirm whether the action is reversible, leaving minor gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% description coverage for all three parameters. The description adds value by clarifying that org_user_id is not a Firebase user ID, emphasizing the fixed organization context, and explaining the purpose of idempotency_key. This goes beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Remove) and resource (organization member's assignment from a specific project). It distinguishes from sibling tools like assign_user_to_project and remove_user_from_customer by specifying the removal context and noting the user may still see via a customer assignment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (removing a user from a project) and includes critical constraints like 'never pass an organization id' and 'cannot target a user more privileged than yourself.' However, it does not explicitly mention alternative tools for different scenarios (e.g., remove_user, remove_user_from_customer), which would strengthen guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopen_monthAInspect

Reopen a previously closed billing month, allowing time to be logged and edited again. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Reversible only by closing the month again.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesCalendar year of the month to reopen (e.g. 2026).
monthYesCalendar month to reopen (1-12).
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully discloses the two-step process, idempotency, and reversibility. No contradictions; a minor gap is lack of mention of any destructive side effects beyond reopening.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, followed by usage pattern. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately explains the two-step workflow and key behaviors for a tool with no output schema. Missing error conditions or state assumptions (e.g., month must be closed) but still sufficient for standard use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have schema descriptions (100% coverage), and the description adds valuable context: confirm_token expires in ~10 minutes, idempotency_key ensures safe retry, and preview returns a token.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'reopen' and the resource 'previously closed billing month', explicitly differentiating it from sibling tools like 'close_month'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two-step preview-commit pattern and reversibility, providing clear usage context. It does not explicitly state when not to use, but the instructions are sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopen_timesheetAInspect

Reopen a Submitted or Approved timesheet period for corrections. The period and its time reports revert to Rejected (editable), allowing the reporter to edit and resubmit. Use this when an approved period needs fixing. An optional comment can be provided. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoOptional comment explaining why the period is being reopened. Shown to the reporter.
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
submission_period_idYesId of the submission period to reopen (from get_pending_approvals or list_approval_history).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Explains that the period and time reports revert to Rejected (editable), and that confirm=true is needed to proceed (otherwise preview only). No annotations present, so description carries the burden; it covers key behaviors but omits idempotency details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with purpose. Every sentence adds value; no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, effect on state, role requirements, and confirm usage. No output schema, but the description adequately sets expectations for the tool's behavior. Could mention idempotency_key briefly, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description adds extra context: explains where to get submission_period_id (from get_pending_approvals or list_approval_history) and clarifies confirm behavior. These additions go beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'Reopen a Submitted or Approved timesheet period for corrections.' The verb 'reopen' and resource 'timesheet period' are specific, and it distinguishes from sibling tools like approve_timesheet or reject_timesheet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage context: 'Use this when an approved period needs fixing.' Also states role requirements (Manager or Admin/Owner) and excludes Finance. Does not explicitly say when not to use, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resend_inviteAInspect

Re-send a pending invitation email to the invitee and reset its status to Pending. Requires the invite_id (discover it via list of pending invites). The organization is fixed by your context — never pass an organization id.

ParametersJSON Schema
NameRequiredDescriptionDefault
invite_idYesId of the pending invitation to resend.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It states the action (resend email, reset status) but does not cover side effects (e.g., email sending, rate limits) or error conditions (e.g., what if invite already accepted or not found). Sufficient for a simple tool but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, direct and to the point. Every sentence adds necessary information without elaboration or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description covers key aspects: what it does, required input, and contextual nuance (fixed organization). Missing error handling details, but acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with descriptions (100% coverage). The description adds value by explaining how to obtain invite_id (from list of pending invites) and clarifying organization context. Idempotency key is already described in schema, so description doesn't repeat it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 're-send', the resource 'pending invitation email', and the effect 'reset its status to Pending'. It distinguishes from siblings like invite_user (creates new) and cancel_invite (cancels).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly requires invite_id and suggests discovering it via list of pending invites. Also notes that organization is fixed by context, so no need to pass an organization id. Lacks explicit when-not-to-use advice, but is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_entityAInspect

Restore a soft-deleted entity (customer, project, task, or subtask) and all its children from the recycle bin. Requires Admin role. entity_type must be one of: Customer, Project, Task, SubTask.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesId of the deleted entity to restore.
entity_typeYesType of entity to restore. One of: Customer, Project, Task, SubTask.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses admin requirement, entity types, and child restoration, but does not mention error handling, idempotency behavior (though schema hints), or return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. First sentence states action and scope, second adds constraints (role, types). Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description should explain outcome. It covers purpose and constraints well but omits what the API returns (e.g., restored entity object or confirmation). Still fairly complete for a restore operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; description restates entity_type values already in schema. Minimal added meaning: admin role and child restoration are contextual but not parameter-specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (restore), the resource (soft-deleted entity), and scope (all children). It specifies the exact entity types and distinguishes from siblings like permanent_delete_entity and list_recycle_bin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use (restore from recycle bin) and who can use (Admin role). It implicitly separates from permanent deletion tools but does not explicitly list when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_invoiceAInspect

Mark an issued invoice as Sent to the customer. The invoice must already be in Issued status. Returns a preview unless confirm=true is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
invoice_idYesId of the issued invoice to mark as sent.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behavioral traits: it returns a preview unless confirm=true is set, and describes the idempotency_key behavior. However, it does not detail what 'mark as Sent' entails (e.g., email dispatch).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with critical info front-loaded; every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description hints at return value ('Returns a preview') and adequately distinguishes from many sibling tools. A bit more detail on preview structure could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the preview behavior for the confirm parameter ('returns a preview only — nothing is written'), going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('mark as Sent'), the resource ('issued invoice'), and a precondition ('must already be in Issued status'), making it distinct from sibling tools like 'issue_invoice' or 'mark_invoice_paid'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies when to use (invoice in Issued status) and describes the preview vs confirm behavior, but does not explicitly mention when not to use or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_budget_thresholdsAInspect

Set the organization-level budget alert thresholds. budget_warning_threshold_percent is the utilization % at which a project is flagged At-Risk; budget_critical_threshold_percent is the % at which it is flagged Over-Budget. The warning threshold must be strictly less than the critical threshold. Supply one or both — only the fields you provide are changed (PATCH semantics). The organization is fixed by your context — never pass an organization id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
budget_warning_threshold_percentNoUtilization % at which a project is flagged At-Risk (must be less than the critical threshold, 1-99).
budget_critical_threshold_percentNoUtilization % at which a project is flagged Over-Budget (must be greater than the warning threshold, 2-100).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses PATCH semantics ('only the fields you provide are changed'), idempotency key usage, and the constraint that warning must be strictly less than critical. It does not mention required permissions, rate limits, or side effects, but for a simple setter this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver the purpose, parameter semantics, and usage note without excess. Front-loaded with core purpose, then parameter details, then crucial guidance. Every sentence is informative and earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with no output schema, the description provides sufficient context: what the tool does, how parameters relate, and idempotency. It lacks permission requirements, but that is partially offset by the clear 'organization fixed by your context' note. It is adequately complete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. The description adds value by explaining the thresholds in context (At-Risk vs Over-Budget), clarifying PATCH behavior, and explicitly stating no organization ID parameter. This goes beyond the schema's individual field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets organization-level budget alert thresholds, with specific verb 'set' and resource 'budget threshold percent'. It names the two thresholds and their roles, distinguishing this from siblings like 'check_budget_limits' or 'get_budget_alerts' by focusing on configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (setting organization-level thresholds) and provides a critical note: 'The organization is fixed by your context — never pass an organization id.' It does not explicitly list when not to use it or mention alternative tools for similar purposes, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_custom_field_valueAInspect

Set the value of a custom field on a specific entity (a project, task, subtask, time report, or customer). The custom field must already be defined for that entity type. The organization is fixed by your context. You must have permission to update the target entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe value to set, as a string. It is validated/coerced to the field's declared type (Number, Date, DateTime, or one of the list options).
entityYesThe entity type (required). One of: billing_projects, billing_tasks, billing_sub_tasks, sub_tasks_time_reports, billing_customers.
field_idYesThe field_id of the custom field definition (required). Must be defined for this entity type.
entity_idYesId of the specific entity instance to set the value on (required). Must be in your organization.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses mutation behavior, required permissions, and the optional idempotency key effect. It could be more explicit that setting a value overwrites any existing value for that field on the entity, but overall it 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, concise, and front-loaded with the main purpose. Every sentence contributes necessary context (purpose, entity types, prerequisites). It is efficient without being overly terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers prerequisites and behavior adequately. However, it lacks detail about the response (e.g., success indicator, returned data) and does not explicitly mention overwrite behavior. For a mutation tool, this leaves some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all five parameters. The description adds little beyond the schema, such as noting validation/coercion to the field's declared type. According to guidelines, high schema coverage (>80%) yields a baseline of 3, and the description adds minimal extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Set the value of a custom field on a specific entity' and enumerates the entity types (project, task, subtask, time report, customer). It distinguishes from sibling tools like 'create_custom_field' which defines fields, and 'update_custom_field' which is for field definitions, not values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides prerequisites: the custom field must already be defined for that entity type, and the user must have permission to update the target entity. It implies when to use this tool (to set a custom field value). However, it does not explicitly state when not to use it or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_org_work_scheduleAInspect

Create or update a named organization-level work schedule (a weekly working-time profile). Provide schedule_id to update an existing one, or omit it to create a new one. weekly_schedule is a JSON object mapping lowercase day names to a working window, e.g. {"monday":{"start":"09:00","end":"18:00"},"saturday":null}. The organization is fixed by your context. On update, only the fields you supply are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSchedule name (required when creating).
notesNoOptional free-text notes.
is_activeNoWhether the profile is active. Defaults to true on create.
schedule_idNoId of an existing schedule to UPDATE. Omit to CREATE a new one.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
weekly_scheduleNoA JSON object (as a string) mapping lowercase day names (sunday..saturday) to a {"start":"HH:mm","end":"HH:mm"} window, or null for a non-working day. Example: {"monday":{"start":"09:00","end":"18:00"},"sunday":null}.
first_day_of_weekNoFirst day of the week: 0=Sunday .. 6=Saturday (1=Monday default).
default_for_countriesNoOptional comma-separated ISO-2 country codes this profile is the default for, e.g. "US,CA".
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that updates are partial ('only the fields you supply are changed') and that idempotency is supported. Missing: required permissions, potential failures, side effects like overriding existing schedules. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no redundancy. Every sentence contributes unique information: purpose, create/update distinction, JSON example, update behavior, and context. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers the key behavioral aspects (create vs update, partial update, format). It omits return value/confirmation and idempotency details (though schema covers idempotency). The description is sufficient for correct use, with schema filling remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the weekly_schedule format with an example, clarifying the schedule_id usage for create/update, and noting that the organization is fixed. This goes beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Create or update a named organization-level work schedule (a weekly working-time profile).' It uses specific verbs (create/update) and identifies the resource (org-level work schedule). Although it doesn't explicitly distinguish from siblings, the 'organization-level' qualifier differentiates it from user-level schedule tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to create vs update (provide schedule_id or omit), and notes that the organization is fixed. However, it does not compare this tool to alternatives like manage_user_work_schedule or holiday profiles, leaving the agent to infer usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_user_cost_rateAInspect

Set the internal hourly COST rate for one member of your organization (used for profit/margin reporting). The organization is fixed by your context - never pass an organization id. You cannot set your own cost rate. The rate value is never echoed back.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesId (or Firebase UID) of the member whose cost rate is being set (required). Must be a member of your organization; cannot be yourself.
currencyNoOptional ISO 4217 currency code (e.g. USD, EUR). Defaults to USD.
hourly_rateYesThe hourly cost rate, a positive number (required).
effective_toNoOptional date this rate stops applying (YYYY-MM-DD). Omit for an open-ended rate.
effective_fromNoOptional date this rate takes effect (YYYY-MM-DD). Defaults to today.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavior. It notes that the set action is for cost rate (affects profit/margin) and that the value is never echoed back. It lacks details on destructive potential or authentication needs but is adequate for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no redundancy. Purpose is stated first, followed by key constraints. Every sentence is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a setter with 6 params and no output schema, the description covers the main purpose, constraints, and a behavioral trait. It could mention the return behavior or error cases, but overall it is sufficient for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value beyond the schema: it explains the context for organization (fixed, never pass ID), clarifies user_id cannot be yourself, and mentions defaults for effective_from. This justifies above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the internal hourly cost rate for an organization member, used for profit/margin reporting. It distinguishes from sibling tools like bulk_update_cost_rates by focusing on a single member and from get_cost_rate_history by being a write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance: organization is fixed by context, user must be a member and not yourself, and rate is not echoed back. However, it does not explicitly state when not to use this tool or mention alternatives like bulk_update_cost_rates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_timerAInspect

Start (or replace) your running timer on a subtask. There is at most one running timer per user; starting a new one replaces any existing. Stop it later with stop_timer to create a Draft time entry, or cancel it with cancel_timer to discard it. Supply subtask_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
subtask_idYesId of the subtask to track time against.
descriptionNoOptional description of the work being tracked.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses replacement behavior (destructive) and lifecycle. Lacks mention of permissions or return format, but adds value beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action. No redundant words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, replacement behavior, and subsequent actions. Lacks output information (no output schema) which would help agent understand return value. Otherwise complete for a simple action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all 3 parameters. Description only mentions subtask_id without adding new meaning. No additional insight beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it starts/replaces a timer on a subtask. Distinguishes from stop_timer and cancel_timer by mentioning their roles. Specific verb (start/replace) and resource (subtask timer).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells when to use (start a timer) and that starting replaces existing. Mentions supply subtask_id. Defers to stop/cancel for next steps. No explicit when-not-to but implied by uniqueness constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_timerAInspect

Stop your running timer. The elapsed time is computed and a Draft time entry is created automatically. Returns the created time entry. No arguments needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses key behaviors: stops timer, computes elapsed time, creates and returns a draft time entry. The statement 'No arguments needed' slightly contradicts the optional idempotency_key but still accurately describes the minimum call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description sufficiently covers what it does and what it returns. It could note the idempotency key is optional but otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the idempotency_key already described. Description adds marginal value by noting 'No arguments needed', but does not enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Stop your running timer' with specific verb and resource. It explains the outcome (elapsed time computed, draft entry created, returned) and implicitly distinguishes from cancel_timer by noting that a time entry is created.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies this is the correct way to stop a timer to log time, but does not explicitly compare with alternatives like cancel_timer or start_timer, nor provide 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.

submit_timesheetAInspect

Submit your time entries for a given month for manager approval. Draft and Rejected entries in the month are transitioned to Submitted. A billing-closed month cannot be submitted. Supply year and month (1-12).

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesCalendar year of the month to submit (e.g. 2026).
monthYesCalendar month to submit (1-12).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description carries full burden. Discloses that Draft and Rejected entries are transitioned to Submitted, and that billing-closed months are rejected. Does not mention idempotency behavior, success/failure responses, or whether it is a read-only or destructive operation (though mutation is implied). Adequate but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding value: purpose, effect + constraint, parameter format. No unnecessary words. Front-loaded with key info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 3 simple params, the description covers purpose, effect, constraint, and parameter usage. Missing error cases or return value details, but sufficient for a straightforward action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for all 3 parameters. Description adds little beyond schema: 'Supply year and month (1-12)' is redundant. Baseline 3 is appropriate as schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action ('Submit your time entries'), resource ('for a given month'), and effect ('Draft and Rejected entries transitioned to Submitted'). Distinguishes from siblings like approve_timesheet or reject_timesheet by focusing on submission for approval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: to submit a month for approval. Mentions a key constraint (billing-closed month cannot be submitted). Lacks explicit when-not-to-use or alternative sibling names, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_holiday_profileAInspect

Look up the official public/national holidays for a country (ISO-2 code, e.g. US, IL, GB) and year from an authoritative public source (Hebcal for Israel, Nager.Date for everywhere else). Returns a DRAFT list of holiday dates: each is either a full day off or a half/partial working day (with a start/end working window). Use this to PROPOSE a holiday profile — never invent holiday dates from memory. The dates returned are authoritative for that exact year.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesThe calendar year to look up holidays for (e.g. 2026).
countryYesISO-2 country code (two letters), e.g. "US", "IL", "GB", "DE".
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral traits: it specifies authoritative sources (Hebcal for Israel, Nager.Date otherwise), indicates the return type (draft list of holidays with full/half days and working windows), and emphasizes data reliability. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the core functionality and ending with a critical usage warning. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description adequately explains the return format (list of holiday dates with day-off classification and working windows) and sources. For a lookup tool with simple parameters, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have 100% schema coverage with descriptions. The description does not add extra parameter details beyond providing example country codes in the text, but this meets the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up official holidays for a given country and year from authoritative sources, returning a draft list. The verb 'look up' and resource 'holidays' are specific, and it distinguishes from sibling tools like create/update/delete_holiday_profile by focusing on suggestion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use this tool to propose a holiday profile and warns against inventing dates from memory. While it doesn't contrast with alternatives, the context of sibling tools makes the use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undo_write_offAInspect

Reverse the most-recent write-off on a time report, restoring the written-off hours to the billable pool. The billing month must still be open. Requires Finance role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
time_report_idYesID of the time report whose most-recent write-off should be reversed (required).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description conveys the mutation nature, required conditions (open month, Finance role), and that it reverses a write-off. It does not explain the preview behavior via the 'confirm' parameter or the idempotency key, which are important behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action and followed by constraints. Every word serves a purpose with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks explanation of return values or error cases, and it omits details about the 'confirm' parameter's preview mode. Given no output schema, the description could be more complete but provides essential context for a mutate tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so the schema already documents all three parameters. The description adds no extra meaning beyond what the schema provides, so it meets the baseline without adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Reverse' and resource 'most-recent write-off on a time report', clearly distinguishing it from its forward sibling 'write_off_time'. It also explains the effect of restoring hours to the billable pool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use (to reverse most-recent write-off) and conditions that must hold (billing month must still be open). It also specifies required role. However, it does not explicitly state when not to use (e.g., if multiple write-offs exist) or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_customerAInspect

Update an existing billing customer in your organization. Only the fields you provide are changed; everything else is left as-is (PATCH semantics). Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew customer name (2-50 characters).
statusNoCustomer status. One of: Active, Inactive.
countryNoCustomer country.
currencyNoISO 4217 currency code (e.g. USD, EUR).
customer_idYesId of the customer to update (required). Must be a customer in your organization.
descriptionNoCustomer description (max 200 characters).
contact_nameNoPrimary contact person name.
contact_emailNoPrimary contact email address.
contact_phoneNoPrimary contact phone number.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It explains PATCH semantics (only provided fields change), but omits other behavioral aspects like required permissions, rollback behavior, or error conditions. The information is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two efficient sentences: the first establishes purpose and behavior, and the second provides a critical usage tip. No extraneous words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters, no output schema, and no annotations, the description covers the essential aspects: what the tool does, how it behaves (PATCH), and how to get required IDs. It could mention return values or errors, but the description is sufficiently complete for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds value by explaining PATCH semantics and the importance of the ID, but does not elaborate on individual parameter usage beyond the schema. The contribution is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and the resource (existing billing customer), and distinguishes it from other tools like create_customer or delete_customer. It also specifies PATCH semantics, which adds precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on how to obtain the customer ID using find_billing_work and instructs the agent never to ask the user for an ID. While it does not list alternatives or when not to use, the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_custom_fieldAInspect

Update an existing custom field definition (title, type, options, or mandatory flag) in your organization. The organization is fixed by your context. You cannot change a field's field_id or the entity it applies to. Only the properties you supply are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoNew field data type. One of: String, Number, Date, DateTime, ListOfValues.
titleNoNew human-readable label.
is_mandatoryNoWhether a value is required when creating/updating the entity.
list_of_valuesNoNew options (for a ListOfValues field; at least one non-blank option).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
field_definition_idYesId of the custom field definition to update (required). Must belong to your organization.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey all behavioral traits. It explains that field_id and entity cannot be changed and that the update is partial. However, it lacks details on potential side effects (e.g., consequences of changing field type on existing values), permissions required, or whether the operation is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three well-structured sentences. It opens with the core functionality, follows with organizational context, and concludes with constraints and behavior. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description covers the essential aspects: what is updated, what is immutable, and the partial update nature. It could be enhanced by noting potential errors (e.g., invalid type change) or return behavior, but it remains fairly complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that the organization is implicitly determined by context, that field_definition_id must belong to that organization, and that only supplied properties are modified. This context aids understanding beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (update), resource (custom field definition), and scope (in your organization). It also explicitly lists the modifiable properties and what cannot be changed (field_id or entity), distinguishing it from related tools like create_custom_field and set_custom_field_value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides context about the organization being fixed and that only supplied properties are changed (partial update). However, it does not explicitly state when to use this tool versus alternatives like create_custom_field, nor does it mention prerequisites (e.g., field must exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_draft_invoiceAInspect

Update editable fields on a DRAFT invoice (notes, internal notes, payment terms, payment instructions, due date, purchase order number). Only valid while the invoice is still a Draft.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNotes to appear on the invoice.
due_dateNoDue date override (ISO 8601).
invoice_idYesId of the draft invoice to update.
payment_termsNoPayment terms, e.g. "Net 30".
internal_notesNoInternal notes (not on the printed invoice).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
payment_instructionsNoBank / payment instructions for the customer.
purchase_order_numberNoCustomer PO number to reference on the invoice.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries full burden. States that it updates the invoice but does not disclose safety (auth, idempotency), error behavior for non-draft invoices, or return value. The idempotency key is in schema but not mentioned in description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The most critical information (what it does and when it's valid) is front-loaded. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, no output schema, and no annotations, the description is adequate but not comprehensive. It covers the draft-only constraint and listed fields but lacks behavioral details like success/error responses or idempotency. Minimal for safe agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, reducing need for param detail. Description lists the editable fields, matching schema parameters, but adds no additional meaning beyond schema descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the action ('Update editable fields on a DRAFT invoice') and lists specific fields, clearly distinguishing from siblings like 'issue_invoice' or 'delete_draft_invoice' by specifying the draft-only constraint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisite (invoice must be a Draft) and implies that updates are only valid in that state. Does not name alternative tools or when not to use, but the draft-only condition is sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_frame_orderAInspect

Update an Open frame order's editable fields (reference, description, caps, dates, currency, notes). Closed frame orders cannot be edited; use this only for Open frame orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoUpdated free-text notes (max 2000 chars).
currencyNoUpdated ISO 4217 currency code (e.g. USD).
end_dateNoUpdated end date (YYYY-MM-DD, >= start_date), or omit to clear.
referenceYesNew unique reference string for this (org, customer), max 100 chars.
start_dateNoUpdated start date (YYYY-MM-DD), or omit to clear.
descriptionNoUpdated description (max 500 chars).
total_hoursNoUpdated contracted hours cap (must be > 0, or omit/null to clear).
total_amountNoUpdated contracted amount cap (must be > 0, or omit/null to clear).
frame_order_idYesId of the frame order to update.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It states it updates fields and restricts to Open orders, but does not mention idempotency, auth requirements, or any side effects beyond the update. This is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence. Every word earns its place: it names the action, target, fields, and conditional constraint. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 parameters and no output schema. The description is brief and does not explain return values, effects on related entities, or how idempotency works (though schema mentions it). For a complex update tool, more context would be helpful, but the description is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds a high-level grouping of editable fields but does not provide significant new meaning beyond the schema's parameter descriptions. No parameter values or constraints are explained beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates an Open frame order's editable fields and lists specific field categories (reference, description, caps, dates, currency, notes). It also distinguishes from closed frame orders, and sibling tools include close_frame_order, which is mutually exclusive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Closed frame orders cannot be edited; use this only for Open frame orders.' This provides clear when-to-use and when-not-to-use guidance. It does not name alternative sibling tools for creating or closing, but the constraint is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_holiday_profileAInspect

Update an existing holiday profile in your organization (name, holiday list, default-for-countries, active flag, or notes). The organization is fixed by your context. A profile's year cannot be changed. Only the fields you supply are changed; supplying holidays REPLACES the profile's holiday list. Holiday dates must fall within the profile's year.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew profile name.
notesNoOptional free-text notes.
holidaysNoA JSON array (as a string) that REPLACES the profile's holidays, each: {"date":"YYYY-MM-DD","name":"...","full_day_off":true|false,"window_start":"HH:mm","window_end":"HH:mm"}. Dates must be within the profile's year.
is_activeNoWhether the profile is active.
profile_idYesId of the holiday profile to update (required). Must belong to your organization.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
default_for_countriesNoOptional comma-separated ISO-2 country codes this profile is the default for, e.g. "US,CA".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Clearly explains that holidays field replaces the entire list, date constraints, and idempotency_key behavior. Discloses that only supplied fields are changed, implying partial update. Minor omission: no mention of authorization or destructive nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences front-loaded with purpose, no redundant text. Efficiently conveys essential information in a structured manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers core behavior and constraints comprehensively. Missing return value specification but acceptable for an update tool. All 7 parameters are documented with useful context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 7 parameters. The description adds value beyond schema by explaining holidays replacement, date constraints within profile's year, idempotency_key retry behavior, and default_for_countries comma-separated format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Update an existing holiday profile' and enumerates the updatable fields (name, holiday list, default-for-countries, active flag, notes). Differentiates from sibling create_holiday_profile and delete_holiday_profile by specifying 'update' and 'existing'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides contextual constraints like 'organization is fixed by your context' and 'profile's year cannot be changed'. Warns about holidays replacement behavior. However, does not explicitly state when to use this tool over create or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_org_settingsAInspect

Update core settings for your organization: name, country, default_time_zone, base_currency, first_day_of_month (1-28), auto_close_month_after_days, and the budget alert thresholds (budget_warning_threshold_percent must be less than budget_critical_threshold_percent). The organization is fixed by your context - never pass an organization id. Only the fields you provide are changed; everything else is left as-is.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOrganization display name.
countryNoOrganization country.
base_currencyNoBase ISO 4217 currency code (e.g. USD, EUR).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
default_time_zoneNoDefault IANA/Windows time zone id (e.g. America/New_York).
first_day_of_monthNoDay the billing month starts (1-28).
auto_close_month_after_daysNoAuto-close a month this many days after it ends (0 = never).
budget_warning_threshold_percentNoUtilization % at which a project is flagged At-Risk (must be less than the critical threshold).
budget_critical_threshold_percentNoUtilization % at which a project is flagged Over-Budget (must be greater than the warning threshold).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions idempotency and constraints (e.g., budget thresholds must be ordered), but does not describe return values, potential side effects, or authentication needs. With zero annotations, some behavioral gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load the purpose and then list fields and constraints. No unnecessary words; every sentence earns its place by providing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no output schema, no annotations), the description covers core functionality, partial usage guidance, and parameter constraints. It lacks details on return format or error scenarios, but is largely self-contained for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 9 parameters with descriptions (100% coverage). The description adds value by clarifying the relationship between budget thresholds and the valid range for first_day_of_month, which goes beyond the schema's basic field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update core settings for your organization' and enumerates the specific fields (name, country, default_time_zone, etc.), leaving no ambiguity about the tool's function. It distinguishes itself from siblings like set_budget_thresholds by offering a comprehensive update operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: organization is fixed by context (never pass ID) and only provided fields are changed. However, it does not compare with alternatives like set_budget_thresholds for budget-only updates, which could improve when-to-use clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_projectAInspect

Update an existing billing project in your organization. Only the fields you provide are changed (PATCH semantics). You can rename the project, update its description, change its status, toggle which billing types are allowed (TM/Fix/OVH), and set per-type hour limits. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew project name.
statusNoProject status. One of: Active, OnHold, Completed, Cancelled.
project_idYesId of the project to update (required). Must be a project in your organization.
descriptionNoProject description (max 500 characters).
billing_typesNoComma-separated list of billing types to allow on this project. One or more of: TM, Fix, OVH. Replaces the entire set — include all types you want to keep.
tm_hour_limitNoT&M (Time & Materials) hour limit for this project (0 = unlimited).
fix_hour_limitNoFixed-price hour limit for this project (0 = unlimited).
ovh_hour_limitNoOverhead hour limit for this project (0 = unlimited).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must stand alone. It discloses PATCH behavior, billing_types replacement, and idempotency_key retry behavior. Missing details like permission requirements or side effects, but adequate for an update operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences plus a third for guidance on IDs. No fluff, well-structured, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no output schema, the description covers PATCH behavior, billing_types nuance, idempotency, and ID discovery. It lacks some validation constraints but is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description lists the editable fields but adds minimal new meaning beyond the schema. The billing_types replacement note is already in the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates an existing billing project, with PATCH semantics, and distinguishes itself from creation or deletion tools. It also instructs to use find_billing_work to get IDs, avoiding confusion with other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says only provided fields are changed (PATCH semantics) and advises to discover IDs with find_billing_work. It does not explicitly mention when not to use it (e.g., for creation), but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_scheduled_reportAInspect

Update an existing scheduled report definition. Only the fields you provide are changed; unspecified fields keep their current values.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesId of the scheduled report to update.
nameNoNew name (optional).
formatNoNew format: pdf or csv (optional).
cadenceNoNew cadence: Daily, Weekly, or Monthly (optional).
is_activeNoEnable (true) or disable (false) the schedule (optional).
recipientsNoNew comma-separated recipient emails (optional).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the partial update behavior but omits details on error handling, permissions, or idempotency implications. The mention of idempotency_key in schema adds some transparency, but the description itself is brief.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core action, no unnecessary words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description explains the update behavior but does not mention return value or error states. It is sufficient for basic understanding but lacks completeness for an agent to anticipate outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that unspecified fields retain their current values, which clarifies the partial update semantics beyond individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing scheduled report definition' with a specific verb and resource, and highlights the partial update behavior ('Only the fields you provide are changed'). This distinguishes it from siblings like create_scheduled_report or cancel_scheduled_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (for updating existing reports) but does not provide explicit guidance on when not to use or alternatives. It lacks context for prerequisites or exclusions, making it minimally adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_subtaskAInspect

Update an existing subtask in your organization. Only the fields you provide are changed (PATCH semantics). You can rename the subtask, update its description, change its status, billing type, and set an hour limit. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew subtask name.
statusNoSubtask status. One of: Active, Inactive, Completed.
hour_limitNoHour limit for this subtask (0 = unlimited). Validated against the parent task's limit for the subtask's billing type.
subtask_idYesId of the subtask to update (required). Must be a subtask in your organization.
descriptionNoSubtask description.
billing_typeNoBilling type for this subtask. One of: TM, Fix, OVH. Must be allowed by the parent task.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses PATCH semantics and the id discovery hint, but lacks details on side effects, required authentication, rate limits, or error handling. The schema covers validation (e.g., hour_limit against parent task), but the description does not reiterate this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. The first sentence states the purpose and PATCH semantics; the second lists updatable fields and provides a critical usage hint. Highly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description covers the basics (purpose, partial update, id discovery) but lacks information on return values, error conditions, or more nuanced validation (e.g., billing_type must be allowed by parent task). Adequate for basic use but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by listing the updatable fields and giving the id discovery hint for subtask_id, which goes beyond the schema. The idempotency_key is not mentioned, but it's a standard pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing subtask' and lists the specific modifiable attributes (name, description, status, billing type, hour limit). It distinguishes from sibling tools like create_subtask and delete_subtask by focusing on updates only, and mentions PATCH semantics for clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains PATCH semantics (only provided fields change) and explicitly advises using find_billing_work to discover ids instead of asking the user. However, it does not mention when not to use this tool (e.g., for moving a subtask) or compare to other update tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskAInspect

Update an existing task in your organization. Only the fields you provide are changed (PATCH semantics). You can rename the task, update its description, change its status, and set per-type hour limits. Discover ids with find_billing_work - never ask the user for an id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew task name.
statusNoTask status. One of: Active, Inactive, Completed.
task_idYesId of the task to update (required). Must be a task in your organization.
descriptionNoTask description.
tm_hour_limitNoT&M (Time & Materials) hour limit for this task (0 = unlimited).
fix_hour_limitNoFixed-price hour limit for this task (0 = unlimited).
ovh_hour_limitNoOverhead hour limit for this task (0 = unlimited).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explains PATCH semantics and idempotency key, but does not detail side effects, permissions, or immediate effects of the update.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, no redundant information. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main behavior and parameter usage, but lacks description of return value or side effects. Given no output schema, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). Description adds context by listing updatable fields and explaining the idempotency key, providing extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb ('update') and resource ('existing task'), and distinguishes from sibling tools like create_task or delete_task by emphasizing PATCH semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use (updating fields) and how to obtain IDs via find_billing_work, but lacks explicit when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_time_reportAInspect

Update fields on one of your own time entries (PATCH — only the fields you supply are changed; everything else is left as-is). Supply the time_report_id plus any combination of date, start_time, hours, and text.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoNew date (ISO 8601 YYYY-MM-DD).
textNoNew description (max 1000 characters).
hoursNoNew duration in hours (> 0 and ≤ 24).
start_timeNoNew start time in 24-h HH:mm.
time_report_idYesId of the time entry to update.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description transparently discloses the PATCH behavior (partial update, none-destructive) and the constraint that it only applies to the user's own time entries. No mention of idempotency or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core behavior and parameters. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the tool's main purpose, input requirements, and behavioral constraints. Could mention return value, but sufficient for a simple update.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds little beyond restating parameters. It does highlight the combinable nature (any combination), but that is implied by the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation (update), resource (time entries), and scope (your own entries). It distinguishes from create/delete siblings by specifying the PATCH semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what parameters to supply and that only supplied fields change, but does not explicitly name alternative tools like bulk_update_time_reports for bulk operations or 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.

update_user_preferencesAInspect

Update your own UI preferences: default time-entry view, sub-views, theme, and time format. Only the fields you provide are changed (PATCH semantics). Applies to your account globally across all organizations. The user is fixed by your context — you can only change your own preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault
time_formatNoClock format. One of: 12h, 24h.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
theme_preferenceNoUI theme preference. One of: light, dark, system.
default_day_sub_viewNoDefault sub-view for the day view. One of: timeline, list, stats, table.
default_week_sub_viewNoDefault sub-view for the week view. One of: calendar, list, timeline.
default_month_sub_viewNoDefault sub-view for the month view. One of: calendar, list, timeline.
default_time_entry_viewNoDefault time-entry view. One of: day, week, month.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but description discloses PATCH behavior (only provided fields changed), global application, and user context restriction, which covers key behavioral traits beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, all essential, no repetition or filler, effectively front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All necessary context provided: what can be updated, partial update behavior, scope, and user restriction. No gaps given schema covers parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds PATCH semantics but does not elaborate on individual parameter meanings beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates own UI preferences, listing specific fields like default time-entry view, sub-views, theme, and time format, and distinguishes it from siblings by specifying scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: PATCH semantics, global application, and that only own preferences can be changed. No direct mention of alternatives, but clear when to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_user_profileAInspect

Update a team member's organization-profile fields: first name, last name, country, timezone, and job title. Only the fields you provide are changed (PATCH semantics). Role changes are not supported here — use the dedicated role-change tool. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoUpdated country.
timezoneNoUpdated timezone (IANA or Windows id).
job_titleNoUpdated job title.
last_nameNoUpdated last name.
first_nameNoUpdated first name.
org_user_idYesId of the OrganizationUser to update.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses PATCH semantics, privilege restriction, and context-based organization. Does not mention return value or error conditions, but covers key behavioral traits beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with verb and resource, no fluff. Each sentence adds essential information: fields list, PATCH semantics, role exclusion, org context, privilege restriction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers critical usage context. It differentiates from siblings and explains constraints. Lacks explanation of return value or error handling, but sufficient for a straightforward update tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds value by grouping the updatable fields and explaining PATCH behavior, reinforcing what the schema documents. However, it doesn't detail individual parameter constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Update a team member's organization-profile fields', lists specific fields (first name, last name, country, timezone, job title), and distinguishes from siblings by explicitly stating that role changes are not supported and directing to a dedicated tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when not to use (for role changes) and points to the alternative (dedicated role-change tool). Also clarifies PATCH semantics, the fixed organization context, and the privilege restriction, providing clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

use_favoriteAInspect

Record that a time-entry favorite was used, incrementing its use count and updating last-used timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
favorite_idYesId of the favorite to record usage for.
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the two behavioral effects (increment count and update timestamp) but does not mention error scenarios, required permissions, or the idempotency behavior of the idempotency_key. Since no annotations are provided, the description carries the full burden but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and effects with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what the tool returns (e.g., success indicator, updated favorite). It omits this, leaving the agent without expected response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description's param value is limited. It does not add meaningful context beyond what the schema already provides, such as the format of favorite_id or details on idempotency_key behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Record that a time-entry favorite was used') and the effects ('incrementing its use count and updating last-used timestamp'), distinguishing it from sibling tools like create_favorite and delete_favorite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for recording a favorite usage but does not explicitly state when to use it versus alternatives, nor does it provide conditions like when not to use or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_importAInspect

Validate a bulk-import CSV without persisting anything. Returns row-level errors and a summary so you can fix the file before calling commit_import.

ParametersJSON Schema
NameRequiredDescriptionDefault
csv_contentYesThe CSV content to validate (use the template from get_import_template).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes read-only validation (no persistence) and outputs (row-level errors and summary), but no annotations provided; lacks detail on authorization or format specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence covering purpose, behavior, and output; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately describes purpose, inputs, and outputs given simple tool; could mention template requirement explicitly but is inferred.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage; description adds value by referencing get_import_template for the correct CSV format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'validate a bulk-import CSV' with specific verb and resource, and distinguishes from sibling 'commit_import' by noting it does not persist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions use before calling commit_import and that it does not persist, but lacks explicit when-not-to-use or alternative tools beyond commit_import.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

void_invoiceAInspect

Void an issued invoice (reason required): releases source hours back to Approved and retains the immutable void record. IRREVERSIBLE. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesRequired reason for voiding (recorded in the audit trail).
invoice_idYesId of the issued invoice to void.
confirm_tokenNoToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keyNoRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses irreversibility, the two-step workflow, and the effect on source hours. Since no annotations provided, description fully covers behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with key action, no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains workflow and all parameters. Could mention return format but not necessary given no output schema. Context is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by explaining the purpose of confirm_token and idempotency_key in the preview-commit pattern, beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Void an issued invoice' and explains the effect (releases hours, retains void record). No sibling tool has the same purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes the two-step preview-commit pattern with confirm_token and idempotency_key. Warning about irreversibility. Does not mention alternatives but the action is unique.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_off_timeAInspect

Write off hours from an approved time report, removing them from the billable pool without invoicing (e.g. discounts or goodwill). Requires Finance role or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursYesNumber of hours to write off (required, must be > 0 and ≤ remaining billable hours).
reasonYesReason for the write-off (required).
confirmNoSet true to perform the action. Omit or false returns a preview only — nothing is written.
time_report_idYesID of the approved time report to write off hours from (required).
idempotency_keyNoOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses action, role requirement, and preview behavior via confirm parameter. However, does not describe idempotency effects or return format beyond preview.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. Each sentence serves a distinct purpose: action description and role requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core behavior and preview mode. Lacks details on preview return value or idempotency behavior, but acceptable for a focused write-off tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions (e.g., hours constraints, confirm logic). The description adds no new parameter info beyond overall context, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'write off', resource 'approved time report', and purpose 'removing from billable pool without invoicing' with examples (discounts/goodwill). Distinguishes from siblings like delete_time_report or mark_time_invoiced.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit role requirement ('Finance role or above'). Implicit usage context (discounts/goodwill) but no explicit when-not-to-use or mention of sibling undo_write_off for reversals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources