Skip to main content
Glama
timesheetIO

Timesheet MCP Server

Official
by timesheetIO

Timesheet MCP Server

npm version License: MIT Node.js Version MCP Compatible

A Model Context Protocol (MCP) server that provides natural language access to the Timesheet API through standardized tools.

Features

  • Timer Management: Start, stop, pause, and resume timers with natural language

  • Task Enhancement: Add notes, expenses, and pauses to running tasks

  • Project Management: Create, update, list, and delete projects

  • Task Management: Full CRUD operations for tasks

  • Natural Language Support: Use simple phrases to control your timer

Related MCP server: WorkTracker MCP Server

Installation

Quick Start with npx

The easiest way to use the Timesheet MCP server is with npx (no installation required):

npx @timesheet/mcp

Global Installation

For frequent use, you can install globally:

npm install -g @timesheet/mcp
timesheet-mcp

Local Installation

For project-specific installation:

npm install @timesheet/mcp

Configuration

Using Environment Variables

Create a .env file with your API token:

TIMESHEET_API_TOKEN=your-api-token-here

Using Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "timesheet": {
      "command": "npx",
      "args": ["@timesheet/mcp"],
      "env": {
        "TIMESHEET_API_TOKEN": "your-api-token"
      }
    }
  }
}

For a globally installed version:

{
  "mcpServers": {
    "timesheet": {
      "command": "timesheet-mcp",
      "env": {
        "TIMESHEET_API_TOKEN": "your-api-token"
      }
    }
  }
}

Sample Prompts

Timer Control

  • Start timer:

    • "Start the timer for ProjectX"

    • "Start timer for ProjectX 10 minutes ago"

    • "Begin tracking time on the mobile app project"

  • Stop timer:

    • "Stop the timer"

    • "Stop working"

    • "I'm done for the day"

  • Pause timer:

    • "I have a break"

    • "Pause the timer"

    • "Taking lunch"

  • Resume timer:

    • "Resume work"

    • "Back from break"

    • "Continue timer"

  • Check status:

    • "What's my timer status?"

    • "Am I tracking time?"

    • "Show current timer"

Task Enhancements

  • Add notes:

    • "Add a note: Fixed the login bug"

    • "Note that I spoke with the client about requirements"

  • Add expenses:

    • "Add expense: $45 for lunch with client"

    • "Record taxi expense of $25"

  • Update task:

    • "Update the description to 'Working on API integration'"

    • "Mark current task as billable"

    • "Add feeling rating of 4"

Project Management

  • List projects:

    • "Show me all my projects"

    • "List active projects"

    • "What projects do I have?"

  • Create project:

    • "Create a new project called 'Website Redesign'"

    • "Add project 'Mobile App v2' with default billable tasks"

  • Update project:

    • "Archive the old website project"

    • "Rename project X to 'Client Portal'"

Task Management

  • List tasks:

    • "Show today's tasks"

    • "List all running tasks"

    • "What did I work on yesterday?"

  • Create task:

    • "Create a 2-hour task for ProjectX from 9am to 11am"

    • "Log 4 hours on the API project for yesterday"

  • Update task:

    • "Mark task X as paid"

    • "Update task description"

    • "Change task to non-billable"

Available Tools

Timer Operations

  • timer_start - Start timer for a project

  • timer_stop - Stop the running timer

  • timer_pause - Pause the timer (start break)

  • timer_resume - Resume timer after break

  • timer_status - Check current timer status

  • timer_update - Update running timer details

Task Enhancements

  • task_add_note - Add note to current task

  • task_add_expense - Add expense to current task

  • task_add_pause - Add manual pause to current task

Project Management

  • project_list - List all projects

  • project_create - Create new project

  • project_update - Update existing project

  • project_delete - Delete project

Task Management

  • task_list - List tasks with filters

  • task_create - Create new task

  • task_update - Update existing task

  • task_delete - Delete task

Authentication

  • auth_configure - Set API authentication

Getting Your API Token

  1. Log in to your Timesheet account

  2. Go to Settings → API Access

  3. Generate a new API token

  4. Copy the token and add it to your configuration

Development

# Clone the repository
git clone https://github.com/timesheet/timesheet-mcp.git
cd timesheet-mcp

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run tests
npm test

Troubleshooting

Timer not starting?

  • Ensure you have a valid API token configured

  • Check that the project ID exists in your account

  • Verify you have permission to create tasks for the project

Authentication errors?

  • Double-check your API token is correct

  • Ensure the token hasn't expired

  • Try generating a new token from your Timesheet settings

License

MIT

Support

For issues and feature requests, visit: https://github.com/timesheet/timesheet-mcp/issues

Available Tools

50 tools
absence_approveApprove AbsenceB
Idempotent

Approve a pending absence.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

B3/5.0
Behavior2/5

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

Annotations already provide idempotentHint=true and non-destructive status. The description adds no additional behavioral context, such as state changes after approval 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.

Conciseness4/5

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

The description is a single, front-loaded sentence with no extraneous text. However, it is too brief given the missing parameter information.

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 an output schema, the description omits critical context: parameter details, usage boundaries, and behavioral insights. For a two-parameter tool, it feels incomplete.

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

Parameters1/5

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

With 0% schema description coverage and two required parameters (organizationId, id), the description provides no explanation of their meaning or format, leaving the agent without guidance.

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 'Approve a pending absence' clearly specifies the action (approve), resource (absence), and scope (pending). It effectively distinguishes from sibling tools like absence_reject and absence_cancel.

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 approving pending absences but provides no explicit guidance on when to use versus alternatives like absence_reject. No when-not-to-use or prerequisite information is given.

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

absence_cancelCancel AbsenceC
Idempotent

Cancel an absence with a reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate idempotent and non-destructive mutation. Description adds minimal behavioral insight beyond stating the action.

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?

Very concise at 5 words, but too terse for a 3-parameter tool. Lacks parameter context.

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 an output schema, the description omits necessary context for a cancellation action, such as the difference from deletion and the role of 'reason'.

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

Parameters2/5

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

With 0% schema coverage, description only mentions 'reason' and fails to explain organizationId or id, leaving critical parameters undocumented.

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

Purpose5/5

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

Clearly states verb 'cancel' and resource 'absence', with additional detail 'with a reason'. Distinguishes from siblings like absence_delete and absence_reject.

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 cancel versus delete or reject. Missing prerequisites or context for when cancellation is appropriate.

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

absence_createCreate AbsenceB

Create a new absence (vacation, sick leave, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
contractIdYes
absenceTypeIdYes
startDateTimeYesStart date/time (ISO 8601)
endDateTimeYesEnd date/time (ISO 8601)
fullDayNo
reasonNo
documentationUrlNo
fileNameNo
fileUriNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, consistent with creation. The description adds no further behavioral context, such as permissions, side effects, or output behavior.

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

Conciseness4/5

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

The description is a single concise sentence that is front-loaded and contains no fluff. However, it is slightly too brief for the tool's complexity.

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 10 parameters and low schema coverage, the description is insufficient. It does not mention required fields, output, or usage context, leaving the agent under-informed.

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 only 20% (only startDateTime and endDateTime have descriptions). The tool description does not explain parameters like organizationId, contractId, absenceTypeId, etc., nor does it provide format or value guidance.

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' and resource 'absence' with examples like vacation and sick leave, distinguishing it from sibling tools that approve, cancel, delete, etc.

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, no prerequisites or when-not-to-use information. The description is purely declarative.

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

absence_deleteDelete AbsenceC
DestructiveIdempotent

Delete an absence.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

C2.4/5.0
Behavior2/5

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

The description adds no behavioral context beyond the annotations (destructiveHint, idempotentHint). It does not mention permanence, cascading effects, or authorization requirements.

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

Conciseness3/5

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

The description is a single, concise sentence, but it omits useful context that could be provided without significant bloat.

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 presence of multiple sibling tools (e.g., absence_cancel) and an output schema, the description fails to clarify the specific effect of deletion versus cancellation or other operations.

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

Parameters1/5

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

Schema description coverage is 0%, and the description offers no explanation of the two required parameters (organizationId, id), forcing the agent to infer their meanings from names alone.

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 'Delete an absence.' clearly specifies a verb (delete) and resource (absence), distinguishing it from sibling tools like absence_create or absence_get.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as absence_cancel or absence_update, leaving the agent without context for tool selection.

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

absence_getGet AbsenceB
Read-only

Get a single absence by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds 'by ID' but doesn't elaborate on behaviors like error handling or access requirements. With annotations, this is adequate.

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 6 words, front-loaded with the key action and resource. 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?

For a simple retrieval tool with two required parameters and no output schema, the description is minimally adequate. However, it lacks any explanation of return values or error scenarios, which would be helpful given the absence of parameter descriptions.

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 0%, meaning no parameter descriptions exist. The description only says 'by ID' without specifying which parameter is the ID or explaining organizationId. It fails to compensate for the lack of 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 'Get a single absence by ID', using a specific verb and resource, and distinguishes itself from sibling tools like absence_list which retrieves multiple absences.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. There is no mention of context, 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.

absence_listList AbsencesA
Read-only

List absences in an organization. Filter by contract, user, type, status, date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesOrganization ID
contractIdNo
userIdNo
absenceTypeIdNo
statusNo
startDateNoStart date (YYYY-MM-DD)
endDateNoEnd date (YYYY-MM-DD)
yearNo
excludeRejectedCancelledNo
teamIdNo
searchNo
limitNo
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
totalCountNoTotal items across all pages

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds no further behavioral details (e.g., pagination, sorting), but is consistent with annotations.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, 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?

Output schema exists, so return values are documented. Description covers key filtering dimensions but omits many parameters; given tool complexity and annotations, it is reasonably 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 23% (only 3 of 13 params have descriptions). Description adds meaning by listing filterable fields (contract, user, type, status, date range), partially compensating for low 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 'List absences' (verb+resource) and mentions filtering options, distinguishing it from sibling tools like absence_create or absence_delete.

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 listing absences with filters, but does not explicitly state when not to use or provide alternatives among siblings.

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

absence_rejectReject AbsenceB
Idempotent

Reject a pending absence with a reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already provide idempotentHint=true and destructiveHint=false. The description adds only 'with a reason' (already in schema), but does not explain side effects, such as whether notifications are sent or if the absence status changes to rejected.

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

Conciseness5/5

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

Single sentence, no filler. 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?

For a simple rejection action, the description is adequate but lacks details on post-rejection behavior, prerequisites (e.g., absence must be pending), and potential errors. Output schema helps but does not excuse missing behavioral context.

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 0%, so description should clarify parameters. Only 'reason' is implied ('with a reason'), but 'organizationId' and 'id' are not explained. The description adds minimal 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 specific action ('Reject') and resource ('a pending absence'), and the 'reason' parameter is mentioned. This distinguishes it from sibling tools like 'absence_approve' and 'absence_cancel'.

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 approve or cancel. No explicit when-not-to or contextual prerequisites.

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

absence_type_listList Absence TypesB
Read-only

List absence types for an organization (vacation, sick, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
limitNo
pageNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
totalCountNoTotal items across all pages

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds minimal behavioral context beyond stating it lists types for an organization.

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

Conciseness4/5

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

The description is a single concise sentence. It is efficient but could include parameter hints without being verbose.

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?

An output schema exists to cover return values. However, with 4 parameters undocmented and no pagination or search behavior mentioned, completeness is moderate.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain any parameters beyond 'organization'. Parameters like limit, page, search are left undocumented.

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

Purpose5/5

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

The description clearly states the tool lists absence types for an organization, with examples. It distinguishes from siblings like absence_list which lists absence entries.

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 absence_list or absence_create. The description only states what it does without usage context.

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

absence_updateUpdate AbsenceC
Idempotent

Update an absence.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYes
idYes
startDateTimeNo
endDateTimeNo
fullDayNo
reasonNo
documentationUrlNo
fileNameNo
fileUriNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoResource ID
successNo
deletedIdNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations indicate idempotentHint=true, openWorldHint=true, and not read-only or destructive, but the description adds no behavioral context. It does not explain side effects, authorization requirements, or what happens during an update. The description is a tautology of the title.

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

Conciseness2/5

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

The description is extremely short (2 words), which is concise but severely under-specifies the tool. It does not earn its place as it fails to convey necessary information.

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 an output schema, the description does not explain the update behavior, return values, error conditions, or required fields beyond the required list. The tool is simple but the description is insufficient 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.

Parameters1/5

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

The input schema has 9 parameters with 0% description coverage, meaning no parameter descriptions exist in the schema. The description 'Update an absence.' provides no meaning for any parameter. The description fails to compensate for the lack of 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?

The description 'Update an absence.' clearly states the action (update) and resource (absence), but fails to differentiate from sibling tools like absence_cancel, absence_approve, or absence_reject. A more specific description would help distinguish scenarios.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., absence_approve, absence_cancel). The description does not mention prerequisites, allowed fields, or intended use cases.

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

auth_configureConfigure API AuthenticationA

Use this when the user needs to configure API key authentication for the Timesheet MCP server. NOTE: This will be deprecated once OAuth 2.1 is implemented.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyYesThe API key for authenticating with the Timesheet API
baseUrlNoOptional custom API base URL (e.g., "https://api-test.timesheet.io" for testing)

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether authentication was configured successfully

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description confirms by stating 'configure API key authentication', implying mutation, and adds transparency about deprecation. 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 wasted words. The first sentence immediately states the purpose, and the second adds a forward-looking deprecation note. 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?

For a simple tool with 2 parameters (1 required), full schema descriptions, and an output schema, the description adequately covers usage and deprecation context. It does not detail side effects or success/failure behavior, but annotations and output schema mitigate this.

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 does not add any additional meaning beyond what the input schema already provides for the two parameters (apiKey and baseUrl).

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 'configure' and resource 'API key authentication' for the Timesheet MCP server. It is distinct from all sibling tools, none of which involve authentication 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 explicitly tells when to use this tool ('when the user needs to configure API key authentication') and provides a deprecation note indicating future replacement with OAuth 2.1. It does not explicitly list when not to use it, but the context is clear as there are no sibling tools for authentication.

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

export_fieldsGet Export FieldsA
Read-only

Use this when the user wants to see what fields/columns are available for customizing exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope filter for fields. Defaults to "task" on the server.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fieldsNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover safety (readOnlyHint, destructiveHint). The description confirms read-only intent but adds no extra behavioral details beyond the core purpose.

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

Conciseness5/5

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

A single sentence that immediately states the core purpose. No wasted words; every word adds value.

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

Completeness4/5

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

With a complete schema, output schema present, and clear annotations, the description adequately covers the tool's purpose. Slight gap: no explicit differentiation from similar field-related tools, but sufficient given the explicit scope.

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 fully describes the single parameter. The description adds no additional meaning or guidance 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 uses a specific verb ('see') and resource ('fields/columns available for customizing exports'), clearly distinguishing this read-only lookup from other export and mutation 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?

Explicitly states when to use ('when the user wants to see available fields'), but does not mention when not to use or suggest alternative tools for related tasks like generating exports.

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

export_from_templateExport from TemplateA
Read-only

Use this when the user wants to generate an export using a previously saved template with specific date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesThe template ID to use. Use export_template_list to find available templates.
startDateYesStart date for the export period (YYYY-MM-DD)
endDateYesEnd date for the export period (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether export was generated successfully
sizeNoFile size in bytes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is well-covered. The description adds no additional behavioral context beyond stating it generates an export, which is consistent with the annotations. No contradictions.

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

Conciseness5/5

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

The description is a single sentence that front-loads the usage context ('Use this when') and conveys the core function with no wasted words. It is appropriately short and 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 that annotations provide safety information, the input schema fully documents parameters, and an output schema exists (implied by context signals), the description is complete enough. It tells the agent when and how to use the tool, and the remaining details are covered by structured fields.

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%, meaning the input schema already describes all three parameters fully. The tool description adds no extra parameter information beyond what is in the schema. Based on the rubric, a baseline score of 3 applies when schema coverage is high and description does not enhance 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 verb 'generate' and the resource 'previously saved template' with a specific date range. This naturally distinguishes it from sibling tools like 'export_generate' (which likely exports without a template) and 'export_template_list' (which lists templates). The purpose is unambiguous.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this when the user wants to generate an export using a previously saved template', providing a clear when-to-use. However, it does not explicitly mention when not to use or name alternatives, though the context of sibling tools makes the distinction clear.

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

export_generateGenerate Timesheet ExportA
Read-only

Use this when the user wants to export their timesheet data in Excel (xlsx), CSV, or PDF format. Returns a download URL for the export file.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportYesReport type identifier. Use export_report_types to get available types.
startDateYesStart date for the export period (YYYY-MM-DD format)
endDateYesEnd date for the export period (YYYY-MM-DD format)
formatNoExport file format. xlsx=Excel, xlsx1904=Excel 1904 date system, csv=comma-separated, pdf=PDF document
teamIdsNoFilter by team IDs
projectIdsNoFilter by project IDs
userIdsNoFilter by user IDs
tagIdsNoFilter by tag IDs
typeNoTask type filter
filterNoStatus filter for billing/payment
splitTaskNoWhether to split multi-day tasks into separate rows
summarizeNoWhether to summarize data instead of showing individual entries
filenameNoCustom filename for the export

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesSigned download URL for the export file

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds that it returns a download URL, which is useful behavioral information and consistent with annotations. No contradictions.

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

Conciseness5/5

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

Two sentences front-load the use case and output. No extraneous information; every word 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?

Given the complexity (13 parameters, output schema exists), the description is sufficiently complete. It covers purpose and return type. The report parameter requires using export_report_types, but that is noted in the parameter description, not the tool description. Overall adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters with descriptions. The tool description does not add additional meaning beyond what the schema provides, meeting the baseline of 3.

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 (export/generate), resource (timesheet data), and output (download URL). It differentiates from sibling tools like export_report_types and export_send by focusing on the generation action, but does not explicitly exclude alternatives.

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 tells when to use the tool ('when the user wants to export their timesheet data'). It provides context but does not mention when not to use it or list alternative tools.

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

export_report_typesGet Export Report TypesA
Read-only

Use this when the user wants to see what report types are available for export (e.g., detailed, summary, by project).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
reportsNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false; description adds context with examples of report types (detailed, summary, by project), enhancing transparency beyond annotations.

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

Conciseness5/5

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

Single sentence, front-loaded with usage guidance, zero waste words – perfectly concise and well-structured.

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 tool with no parameters and an output schema (assumed), the description fully covers what the tool does and what it returns, leaving no gaps.

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?

No parameters defined, so schema coverage is 100%; description adds significant meaning by specifying the purpose and providing examples of report types, exceeding the baseline of 4 for 0-param 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?

Description clearly specifies the verb ('see what report types are available') and resource ('report types for export'), distinguishing it from sibling tools like export_generate and export_fields.

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 this tool ('when the user wants to see what report types are available'), providing clear context without needing exclusions.

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

export_sendSend Export via EmailB

Use this when the user wants to generate and send a timesheet export directly to an email address.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to send the export to
reportYesReport type identifier
startDateYesStart date for the export period (YYYY-MM-DD)
endDateYesEnd date for the export period (YYYY-MM-DD)
formatNoExport file format
teamIdsNoFilter by team IDs
projectIdsNoFilter by project IDs
filenameNoCustom filename for the export

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether email was sent successfully
emailNoEmail address the export was sent to

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds only 'generate and send' which is consistent but provides no further behavioral context (e.g., immediate send, authentication, 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.

Conciseness4/5

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

Single sentence with clear front-loading of purpose. No filler, but could be slightly more structured to highlight key points like optional filters.

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 8 parameters (4 required), output schema exists, and no annotations for side effects, the description is too sparse. It omits context about optional filters (teamIds, projectIds) and format choices, leaving the agent to rely solely on schema.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add parameter-specific insights beyond what the schema already provides, so it meets but does not exceed expectations.

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 and sends a timesheet export to an email, with a specific verb-resource pair. It distinguishes from siblings like export_generate (which only generates) and export_fields (which lists fields).

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

Usage Guidelines3/5

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

The description implies usage when sending is needed but does not explicitly state when not to use or mention alternatives like export_generate for generation-only. Guidance is implied, not explicit.

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

export_template_createCreate Export TemplateA

Use this when the user wants to save their export configuration as a reusable template.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTemplate name
reportNoReport type identifier
formatNoExport format
teamIdsNoTeam IDs filter
projectIdsNoProject IDs filter
userIdsNoUser IDs filter
typeNoTask type filter
filterNoStatus filter
splitTaskNoSplit multi-day tasks
summarizeNoSummarize data
emailNoDefault email for sending exports
filenameNoDefault filename

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoCreated template ID
nameNoTemplate name

TDQS

A3.6/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating a non-destructive write operation. The description adds no further behavioral context, such as side effects or auth requirements, but the basic action is obvious.

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

Conciseness4/5

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

The description is a single, concise sentence that conveys the essential purpose without unnecessary words. It is well-structured and easy to parse.

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 is brief but covers the core use case. With an output schema present, return values are documented. However, for a tool with many optional parameters, additional guidance on usage context 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 all 12 parameters having descriptions. The description does not add extra parameter-level information beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('save') and the resource ('export configuration as a reusable template'). It distinguishes this tool from siblings like export_template_update and export_from_template by focusing on saving a new template.

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 indicates when to use the tool ('when the user wants to save their export configuration as a reusable template'). It implies that for other actions (updating, deleting, using templates) alternative sibling tools should be used.

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

export_template_deleteDelete Export TemplateA
DestructiveIdempotent

Use this when the user wants to delete an export template. This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesTemplate ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether deletion was successful
deletedIdNoDeleted template ID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true and idempotentHint=true. Description adds 'This cannot be undone', reinforcing irreversibility beyond the annotation.

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

Conciseness5/5

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

Two sentences, no wasted words. Information is front-loaded and efficient.

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

Completeness4/5

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

Simple tool with one parameter and output schema. Description covers purpose and consequence. Annotations fill the rest. Adequate for the 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?

Schema covers 100% of parameters with description for templateId. Description does not add 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 action (delete) and the resource (export template). It distinguishes from siblings like create, update, get, and list.

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 ('when the user wants to delete an export template'). The warning 'This cannot be undone' provides context, but no explicit alternatives or when-not-to-use.

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

export_template_getGet Export TemplateA
Read-only

Use this when the user wants to view details of a specific export template.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesThe template ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
reportNo
formatNo
teamIdsNo
projectIdsNo

TDQS

A4/5.0
Behavior3/5

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

The description is consistent with annotations (readOnlyHint=true) but adds no additional behavioral context beyond what is already available from the annotations. The annotations already convey the safety profile adequately.

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 direct and to the point, with no unnecessary words or 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 simplicity of the tool (one parameter, output schema present), the description is adequate for an agent to understand its purpose. It could be slightly more informative about what 'details' entail, but the output schema likely covers that.

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 has 100% coverage for the single parameter templateId with a description. The tool description does not add any further meaning or context about the parameter, so it meets the baseline without enhancement.

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 ('view details') and the resource ('specific export template'), clearly distinguishing it from siblings like export_template_list or export_template_create.

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 indicates when to use the tool ('when the user wants to view details'), providing a direct usage context, though it does not explicitly state when not to use it or mention alternative tools.

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

export_template_listList Export TemplatesA
Read-only

Use this when the user wants to see their saved export templates for quick recurring exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of templates to return
pageNoPage number for pagination (1-based)
searchNoSearch templates by name
sortNoSort field
orderNoSort order

Output Schema

ParametersJSON Schema
NameRequiredDescription
templatesNo
totalCountNoTotal number of templates

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, providing safety guarantees. The description adds minor context about 'quick recurring exports' but does not disclose pagination, sorting, or search behaviors. With annotations present, the description is adequate but adds marginal 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?

The description is a single sentence that is front-loaded with the use case. It is concise and contains no wasted words.

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

Completeness3/5

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

Given the tool has 5 parameters, 2 enums, and an output schema, the description lacks details on pagination, filtering, and sorting capabilities. However, since an output schema exists, the return structure is documented elsewhere. The description is incomplete regarding how to effectively use the parameters.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are fully described in the input schema. The tool description does not add any additional meaning beyond what the schema provides, 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 clearly states the tool's purpose: to view saved export templates for recurring exports. It uses a specific verb 'see' (list) and resource 'export templates', and distinguishes from siblings like export_template_get (single) and export_template_create.

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 gives a clear when-to-use ('when the user wants to see their saved export templates'), but does not explicitly mention when not to use it or compare with alternatives like export_template_get for single templates. Context is clear but guidance is incomplete.

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

export_template_updateUpdate Export TemplateA

Use this when the user wants to modify an existing export template.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesTemplate ID to update
nameNoUpdated template name
reportNoUpdated report type
formatNoUpdated export format
teamIdsNoUpdated team IDs filter
projectIdsNoUpdated project IDs filter

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description confirms it is a modification operation but adds no further behavioral details (e.g., partial update behavior, permissions, side effects). With annotations present, the description provides minimal added value, but it does not contradict them.

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, front-loaded sentence that clearly states the tool's purpose. It is concise and efficient, though it could benefit from slightly more context without becoming verbose.

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

Completeness3/5

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

Given that output schema exists and input schema is fully described, the description is adequate but minimal. It does not mention that only provided fields are updated (implied by the schema), nor does it address the openWorldHint annotation. For a 6-parameter tool, additional context about partial updates 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?

Input schema has 100% coverage, with each parameter described. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate; the description does not compensate for any schema gaps as there are none.

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 'modify an existing export template' with a specific verb ('modify') and resource ('export template'). This distinguishes it from sibling tools like export_template_create, export_template_delete, and export_template_get, allowing an agent to correctly select it for update actions.

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 when to use the tool ('when the user wants to modify an existing export template') but provides no guidance on when not to use it or alternatives. Sibling tools for creating, deleting, or listing templates exist but are not mentioned, limiting the agent's ability to differentiate use cases.

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

project_createCreate ProjectA

Use this when the user wants to create a new project to organize their time tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe project name or title
descriptionNoOptional description providing more details about the project
colorNoOptional color code for visual identification (typically 0-23)
teamIdNoOptional team ID if this project belongs to a team
taskDefaultBillableNoWhether tasks in this project should be billable by default

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe ID of the newly created project
titleYesThe project title

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate non-readonly and non-destructive. The description adds no behavioral details beyond creation (e.g., no mention of auth, side effects, or output format). With openWorldHint, more context could 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?

One sentence, front-loaded with purpose, no unnecessary words. Highly concise 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?

Given the tool's simplicity (5 params, output schema exists), the description is mostly complete. It could optionally mention that description and color are optional, but not required.

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 5 parameters. The description does not add any additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'create' and resource 'project' with context 'to organize their time tracking'. It distinguishes from sibling tools like project_list and project_update.

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?

States 'Use this when the user wants to create a new project', providing a clear condition for use. However, it does not explicitly exclude nor mention alternatives like project_update or project_delete.

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

project_deleteDelete ProjectA
DestructiveIdempotent

Use this when the user wants to permanently delete a project. WARNING: This is a destructive operation that cannot be undone. All associated tasks will remain but will lose their project association.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe project ID to delete permanently

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the deletion was successful
deletedIdNoThe ID of the deleted project

TDQS

A4.2/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond the annotations, such as the irreversibility of the operation and the fact that associated tasks lose their project association. It does not contradict the provided annotations.

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

Conciseness5/5

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

The description is concise with two sentences and a warning, all front-loaded with essential information. Every sentence adds value without unnecessary 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 tool's simplicity (one parameter, clear schema, and existence of an output schema), the description adequately covers the destructive nature and task behavior. It could potentially mention the effect on other entities, but the output schema likely handles return values.

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% description coverage for the only parameter 'id', and the description does not add additional meaning beyond what the schema already provides. Thus, the baseline score of 3 is appropriate.

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

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' and the resource 'project', and it distinguishes itself from sibling tools like project_create, project_get, project_list, and project_update.

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 when to use the tool ('when the user wants to permanently delete a project') and includes a warning about destructiveness and task disassociation. However, it does not mention when not to use it or provide explicit alternatives.

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

project_getGet ProjectA
Read-only

Use this when the user wants to view detailed information about a specific project.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe project ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesProject ID
titleYesProject title
descriptionNoProject description
colorNoProject color as decimal integer
archivedNoWhether the project is archived

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds minimal extra behavioral context beyond stating 'view detailed information'. No contradictions.

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

Conciseness5/5

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

Single sentence, front-loaded, and no wasted words. Every part of the description 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?

Given the presence of output schema and comprehensive annotations, the description is adequate for a simple get operation. Could mention permissions but not critical.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'id', and the tool description adds no further 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?

Title and description clearly state the verb 'get' and resource 'project', distinguishing from sibling tools like project_create, project_list, etc.

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 says when to use it ('when the user wants to view detailed information about a specific project'), but does not mention when not to use or explicitly cite alternatives like project_list for multiple projects.

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

project_listList ProjectsA
Read-only

Use this when the user wants to view their projects. IMPORTANT: When the user asks for a specific number (e.g., "show me 5 projects"), use the limit parameter to control how many projects are returned. Always use pagination to avoid loading all projects unnecessarily. Supports filtering by team, status, date ranges, and text search.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of projects to return. Use this when user asks for a specific number (e.g., "5 projects" = limit: 5). Defaults to 20 if not specified.
pageNoPage number for pagination (1-based). Use with limit to fetch subsequent pages.
teamIdNoOptional team ID to filter projects belonging to a specific team
teamIdsNoOptional array of team IDs to filter projects belonging to multiple teams
projectIdsNoOptional array of project IDs to filter specific projects
searchNoOptional search query to filter projects by title (partial match supported)
statusNoFilter by project status. "active" = non-archived, "inactive" = archived, "all" = both. Defaults to "all" if not specified.
sortNoSort field for projects: alpha=alphabetical, alphaNum=alphanumeric, client=by client name, duration=total time tracked, created=creation date, status=active/inactive
orderNoSort order (ascending or descending)
taskStartDateNoFilter projects with tasks starting on or after this date (ISO 8601 format: YYYY-MM-DD)
taskEndDateNoFilter projects with tasks ending on or before this date (ISO 8601 format: YYYY-MM-DD)
taskRateIdNoFilter projects containing tasks with this specific rate ID
taskTypeNoFilter projects containing tasks of a specific type
taskFilterNoAdditional task-level filter for projects
taskUserIdsNoFilter projects containing tasks assigned to these user IDs

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYesList of projects matching the criteria
totalCountNoTotal number of projects returned

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so description adds value by detailing pagination behavior (always use pagination, limit defaults to 20) and filter capabilities. 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?

Front-loaded with main purpose, then key usage guidelines. Three sentences with no wasted words. Well-structured for quick comprehension.

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 output schema exists, description adequately covers all key aspects: purpose, pagination, filtering. Could mention defaults explicitly but schema already handles; completeness is 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 baseline 3 is appropriate. Description adds usage hints like 'use limit when user asks for specific number' but does not provide new semantic meaning beyond the schema.

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

Purpose5/5

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

Clearly states 'view their projects' with specific action and resource. Distinguished from sibling list tools by focusing on projects. Provides additional context on pagination and filtering.

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

Usage Guidelines4/5

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

Explicitly says when to use (user wants to view projects) and gives concrete examples like using limit for specific numbers and pagination. Does not explicitly give when-not-to-use, but context implies this is the sole project listing tool.

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

project_updateUpdate ProjectA

Use this when the user wants to modify an existing project's details such as title, description, or archive status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe project ID to update
titleNoUpdated project title
descriptionNoUpdated project description
archivedNoSet to true to archive the project, false to unarchive it

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe updated project ID
titleNoThe updated project title

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows it's a safe mutation. The description adds specifics (title, description, archive status) but does not disclose other behavioral traits like error handling or side effects. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. Every word adds value with no redundancy.

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

Completeness4/5

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

Given the presence of annotations, an output schema, and full parameter coverage, the description is mostly complete. It could mention that the project must exist or that updating archived status has implications, but overall it provides adequate 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?

The input schema has 100% coverage with descriptions for all 4 parameters. The description lists the same fields (title, description, archive status) but adds no new meaning beyond the schema. 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 clearly states 'modify an existing project's details' with specific examples (title, description, archive status). This distinguishes it from sibling tools like project_create (creation) and project_delete (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 instructs when to use the tool ('when the user wants to modify an existing project's details'), providing clear context. It lacks explicit exclusion criteria or alternative suggestions, but the sibling tool names imply alternatives.

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

report_document_getGet Document Report DataA
Read-only

Use this when the user wants to retrieve formatted document/invoice data including tasks, expenses, and financial calculations. Returns JSON data ready for display.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesThe unique identifier of the document/invoice to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentTitleNoDocument title
invoiceNumberNoInvoice number
totalAmountNoFormatted total amount
tasksNoList of task items

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds that it returns JSON data for display, which is consistent but adds limited additional behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is just two sentences: the first states when to use, the second states what it returns. It is concise, front-loaded, and every sentence adds value.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to detail return values. It mentions the JSON format and display readiness, which is helpful. The description is complete for a simple retrieval tool, though it could highlight the distinction from PDF/XML siblings more explicitly.

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

Parameters3/5

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

Schema coverage is 100% with a clear description of documentId. The tool description does not add extra meaning about the parameter beyond the schema, so it meets 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 specifies the action (retrieve) and the resource (formatted document/invoice data), listing included data types (tasks, expenses, financial calculations). Among siblings like report_document_pdf and report_document_xml, it clearly differentiates by returning JSON data.

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 ('when the user wants to retrieve formatted document/invoice data') and mentions the output format (JSON ready for display). It does not explicitly exclude PDF/XML uses, but the context from sibling tools provides that guidance.

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

report_document_pdfGenerate Document PDFA
Read-only

Use this when the user wants to generate and download a PDF version of a document/invoice. Returns a download URL for the PDF file.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesThe unique identifier of the document/invoice to generate PDF for

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether PDF was generated successfully
sizeNoPDF file size in bytes
messageNoStatus message

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it returns a download URL, but lacks further behavioral details like authentication or rate limits. With annotations covering the main aspects, a 3 is appropriate.

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

Conciseness5/5

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

The description is two sentences, front-loaded with usage guidance, and contains no extraneous information. Every sentence 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?

For a simple tool with one parameter and an output schema, the description explains the purpose and return value. It could mention potential transience of the URL, but overall it's mostly complete.

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

Parameters3/5

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

The schema has 100% coverage with a clear description of the single parameter (documentId). The tool description does not add additional semantic meaning beyond the schema, so baseline 3 is correct.

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

Purpose5/5

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

The description clearly states the action ('generate and download a PDF version') and the resource ('document/invoice'), distinguishing it from sibling tools like report_document_xml (XML) and report_document_get (data retrieval).

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 'Use this when...' providing clear context for when to use this tool. However, it does not mention alternatives or when not to use it, such as for other formats.

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

report_document_xmlGenerate Document XMLA
Read-only

Use this when the user wants to generate XML representation of a document for e-invoicing (Zugferd, XRechnung, ebInterface). Returns XML data for electronic invoice processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesThe unique identifier of the document/invoice to generate XML for

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether XML was generated successfully
xmlNoXML content

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. Description adds that it generates XML and returns XML data, which is helpful but not beyond what annotations suggest. 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, front-loaded with usage context, no unnecessary words. Efficient and well-structured.

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 low complexity (1 param, annotations present, output schema exists), description completely covers the tool's purpose and output. No gaps.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter description. The description does not add extra meaning beyond the schema, so 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?

Clearly states the verb 'generate XML', resource 'document', and specific use case 'e-invoicing (Zugferd, XRechnung, ebInterface)'. Distinguishes from siblings like report_document_get and report_document_pdf.

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 when to use (when user wants XML for e-invoicing) but does not explicitly provide when-not-to-use or alternatives. Adequate but lacks explicit guidance.

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

report_expense_getGet Expense Report DataA
Read-only

Use this when the user wants to retrieve formatted expense data including amounts and receipt information.

ParametersJSON Schema
NameRequiredDescriptionDefault
expenseIdYesThe unique identifier of the expense to retrieve report data for

Output Schema

ParametersJSON Schema
NameRequiredDescription
expenseDateNoFormatted expense date
expenseAmountNoFormatted amount
expenseDescriptionNoExpense description

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds context about the output content (amounts and receipt information) but does not disclose other behavioral traits like handling of invalid IDs or data freshness. This is adequate but not exceptional.

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

Conciseness5/5

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

The description is a single sentence of 17 words, front-loaded with the usage instruction. Every word earns its place, and there is no extraneous information.

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 get-by-ID tool with a single required parameter, read-only annotations, and an output schema present, the description is complete. It specifies what the tool returns (formatted expense data with amounts and receipt info), which is sufficient for the agent to understand its behavior.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter (expenseId), and the description does not add any additional meaning or detail about the parameter. Baseline score of 3 is appropriate when the schema sufficiently documents the parameter.

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 'formatted expense data including amounts and receipt information'. The verb 'retrieve' and resource 'formatted expense data' are specific. It distinguishes from sibling tools like report_expense_pdf (which returns PDF) and report_document_get (for document reports) by focusing on structured expense data.

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 'Use this when the user wants to retrieve formatted expense data...', providing a clear context for use. However, it does not mention alternatives or when not to use it, such as if the user needs a PDF version or raw data.

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

report_expense_pdfGenerate Expense PDFA
Read-only

Use this when the user wants to generate and download a PDF report for a specific expense including receipt images.

ParametersJSON Schema
NameRequiredDescriptionDefault
expenseIdYesThe unique identifier of the expense to generate PDF for

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether PDF was generated successfully
sizeNoPDF file size in bytes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description need not restate. It adds that receipt images are included, which is useful. No disclosure of rates, sizes, or other behaviors. With annotations, this is adequate.

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

Conciseness5/5

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

A single, front-loaded sentence that efficiently conveys purpose and key feature. No extraneous 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?

The tool is simple with one parameter and output schema present. Description covers purpose and distinguishing feature (receipt images). Complete for selection.

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 single parameter 'expenseId' is well-described in the schema (100% coverage). The tool description mentions 'specific expense', consistent with schema. No additional semantic 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 tool generates and downloads a PDF report for a specific expense including receipt images. It uses a specific verb-resource pair and distinguishes from siblings like report_expense_get or report_document_pdf.

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 'Use this when the user wants to generate and download a PDF report...' providing clear context. It does not specify exclusions or alternatives, but the sibling context implies distinct usage.

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

report_note_getGet Note Report DataA
Read-only

Use this when the user wants to retrieve formatted note data including content and attachments.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteIdYesThe unique identifier of the note to retrieve report data for

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteDateNoFormatted note date
noteContentNoNote content
noteAuthorNoNote author name

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, and openWorldHint. Description adds that retrieval includes formatted data with content and attachments, but does not provide significant additional behavioral context.

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

Conciseness5/5

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

Single sentence, front-loaded with the use case, 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?

Has output schema so return details are covered. Description mentions content and attachments. With one parameter and clear annotations, it is adequately 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 covers the single parameter noteId with description (100% coverage). Description adds context about what the response includes (content and attachments), but does not add parameter-specific 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 tool retrieves formatted note data including content and attachments, distinguishing it from sibling tools like report_note_pdf.

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 explicitly says 'Use this when', providing clear context for when to use the tool, though it does not mention alternatives or exclusions.

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

report_note_pdfGenerate Note PDFA
Read-only

Use this when the user wants to generate and download a PDF report for a specific note including images.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteIdYesThe unique identifier of the note to generate PDF for

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether PDF was generated successfully
sizeNoPDF file size in bytes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, and open-world. Description adds useful context that the PDF includes images, enhancing transparency beyond annotations.

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

Conciseness5/5

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

Single, well-structured sentence that is front-loaded and contains no unnecessary words.

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

Completeness5/5

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

Given the simple single-parameter schema, comprehensive annotations, and presence of an output schema, the description fully captures the tool's purpose and behavior.

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

Parameters3/5

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

Schema covers 100% of parameter descriptions. The tool description does not add additional meaning to the noteId parameter 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 (generate and download), resource (PDF report for a note), and specific behavior (including images). It distinguishes from sibling tools like report_document_pdf or report_task_pdf by specifying 'note'.

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 (generate PDF for a note), providing clear context. However, it doesn't mention when not to use or alternatives like report_note_get.

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

report_task_getGet Task Report DataA
Read-only

Use this when the user wants to retrieve formatted task data including time tracking, rates, and project details.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe unique identifier of the task to retrieve report data for

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskDateNoFormatted task date
taskDurationNoFormatted duration
projectNameNoProject name
taskTotalNoFormatted total amount

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint; the description adds value by specifying what data is included (time tracking, rates, project details), which goes beyond annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the usage context and efficiently conveys purpose without wasted words.

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

Completeness5/5

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

For a simple retrieval tool with one parameter and an output schema, the description sufficiently explains what data is returned, meeting completeness needs.

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

Parameters3/5

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

Schema coverage is 100% and the parameter description is adequate. The tool description does not add additional meaning to the parameter beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'retrieve' and the resource 'formatted task data', listing specific included fields (time tracking, rates, project details). This distinguishes it from sibling tools like report_task_pdf which generates a PDF.

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 a clear usage context ('Use this when the user wants to retrieve formatted task data') but does not explicitly state when not to use it or mention alternative siblings.

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

report_task_pdfGenerate Task PDFB
Read-only

Use this when the user wants to generate and download a PDF report for a specific task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe unique identifier of the task to generate PDF for

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNoWhether PDF was generated successfully
sizeNoPDF file size in bytes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds that a PDF is generated and downloadable, which is consistent with read-only behavior. No additional behavioral traits are disclosed beyond what annotations convey.

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

Conciseness4/5

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

The description is a single sentence, concise and to the point. It could benefit from slightly more structure (e.g., stating the parameter explicitly), but overall it is appropriately sized.

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 simplicity (one required parameter, output schema exists), the description provides minimal context. It does not explain what the PDF contains (e.g., task details, time entries), which could help the agent decide when to use this tool over alternatives.

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 parameter description in the schema is clear. The tool description does not add extra meaning for the parameter beyond what is already in the schema.

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

Purpose4/5

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

The description clearly states the verb (generate/download) and resource (PDF report for a specific task). It distinguishes from siblings through the tool name itself (task vs expense, note, document), but does not explicitly differentiate in text.

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 explicitly states when to use (when user wants to generate/download PDF for a task), but lacks guidance on when not to use or alternatives. Sibling tools like report_expense_pdf exist, and excluding them would improve clarity.

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

statistics_getGet StatisticsA
Read-only

Use this when the user wants to see time tracking statistics, summaries, or reports for a date range. Returns aggregated totals, project breakdowns, and daily/weekly hour charts.

ParametersJSON Schema
NameRequiredDescriptionDefault
startDateYesStart date for the statistics period (YYYY-MM-DD)
endDateYesEnd date for the statistics period (YYYY-MM-DD)
projectIdNoFilter statistics for a specific project
projectIdsNoFilter statistics for multiple projects
teamIdNoFilter statistics for a specific team
teamIdsNoFilter statistics for multiple teams
tagIdsNoFilter statistics by tag IDs
userIdsNoFilter statistics by user IDs
filterNoFilter by billing/payment status

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalHoursYesTotal hours tracked
billableHoursYesBillable hours
nonBillableHoursNoNon-billable hours
totalTasksNoTotal number of tasks
totalBreakHoursNoTotal break hours
startDateYesPeriod start date
endDateYesPeriod end date

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. Description adds value by specifying the output includes 'aggregated totals, project breakdowns, and daily/weekly hour charts', giving behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with usage instruction, no redundancy. Every phrase adds value without unnecessary details.

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?

Description covers purpose, usage, and output behavior. Output schema exists so return values are handled externally. Could include a note about default date ranges or pagination, but overall complete for a statistics 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% and each parameter is well-documented in the schema. Description does not add additional meaning beyond the schema, staying 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?

Description clearly states 'time tracking statistics, summaries, or reports' with a specific verb 'see' (implied get), resource (statistics), and scope (date range). Distinguishes from sibling tools like report_document_get or absence_list by focusing on aggregated statistics.

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

Usage Guidelines4/5

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

Explicitly says 'Use this when the user wants to see time tracking statistics' which provides clear context. Does not mention when not to use it or list alternatives, but the context signals and sibling tools show other report tools exist.

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

task_add_expenseAdd Expense to TaskA

Use this when the user wants to record an expense or cost associated with the currently running task, such as travel, materials, or client entertainment.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesDescription of what the expense was for (e.g., "Taxi to client site", "Lunch meeting", "Materials")
amountYesExpense amount as a decimal string in the user's default currency (e.g. "12.50"). The API stores amounts as BigDecimal strings.
dateTimeNoOptional timestamp for when the expense occurred in ISO 8601 format. If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the expense was added successfully
expenseDescriptionNoThe expense description
amountNoThe expense amount recorded (decimal string)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description describes the action as 'record an expense or cost', which is consistent. However, it does not add behavioral context beyond the basic action, such as whether expenses accumulate, can be edited, or require permissions. Given low annotation value add, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single sentence that directly states the tool's purpose without any extraneous words. It is concise and front-loaded.

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?

The tool has 3 well-documented parameters, an output schema, and annotations that describe safety and openness. The description covers the action and use case. All essential information for an agent to select and invoke the tool is present and clear.

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 each parameter having clear descriptions (e.g., 'Description of what the expense was for', amount as decimal string, dateTime as ISO 8601). The description adds no extra meaning beyond the schema, so baseline score of 3 applies.

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 records an expense/cost for the currently running task (e.g., travel, materials). The verb 'record an expense' and resource 'cost associated with the currently running task' are specific, and the examples clarify scope. However, it doesn't explicitly distinguish from potential sibling expense tools (none exist) nor clarify if it's only for running tasks.

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: when the user wants to record an expense/cost associated with the currently running task. It provides concrete examples. It does not mention when not to use or alternatives, but among siblings, no other expense tool exists, so the guidance is clear.

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

task_add_noteAdd Note to TaskA

Use this when the user wants to add a text note or comment to the currently running task for future reference or documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe note content or comment to attach to the task
dateTimeNoOptional timestamp for the note in ISO 8601 format. If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the note was added successfully
noteTextNoThe note text that was added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate a non-read-only, non-destructive, open-ended operation. The description adds context by specifying the note is attached to the 'currently running task' and for 'future reference or documentation'. It does not outline side effects or error conditions, but the information provided is sufficient for a simple creation 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, direct sentence that immediately conveys the tool's purpose. It is front-loaded and contains no unnecessary words or filler.

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 (2 parameters, 1 required), an output schema present, and annotations covering safety, the description provides all necessary context. It clearly states the use case and what the tool accomplishes without omitted 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?

Both parameters ('text' and 'dateTime') are fully described in the input schema with clear descriptions. The tool description adds no additional parameter-level meaning beyond what the schema already provides, resulting in a baseline score for high 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 explicitly states the verb 'add', the resource 'a text note or comment', and scope 'to the currently running task'. It clearly distinguishes from sibling tools like task_add_expense or task_add_pause.

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 ('when the user wants to add a text note or comment to the currently running task'). However, it does not mention when not to use this tool or suggest alternatives for modifying existing notes.

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

task_add_pauseAdd Manual Pause to TaskA

Use this when the user wants to manually record a past break or pause period that was not tracked in real-time.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoReason for the pause (e.g., "Lunch break", "Meeting", "Coffee break")
startDateTimeYesWhen the pause started in ISO 8601 format
endDateTimeYesWhen the pause ended in ISO 8601 format

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the pause was added successfully
durationNoDuration of the pause in seconds

TDQS

A4.2/5.0
Behavior4/5

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

Description accurately characterizes the tool as a write operation (recording a pause) which aligns with annotations (readOnlyHint=false). Adds behavioral context that it is for past breaks not tracked in real-time. No contradictions. Could mention side effects or required authorization, but current info is adequate.

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

Conciseness5/5

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

Single sentence, no wasted words. Front-loaded with the usage directive. Every word adds value.

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

Completeness4/5

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

Given the simple tool with well-documented parameters and existing output schema, the description provides sufficient context for usage. However, it does not explain the return behavior or how pauses relate to a task (implied by name).

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 parameters adequately. The tool description does not add additional semantic meaning beyond the schema, which 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?

Description clearly states the verb 'record' and resource 'past break or pause period', distinguishing it from real-time tracking tools like timer_pause. The phrase 'manually record a past break or pause period that was not tracked in real-time' is specific and unambiguous.

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

Usage Guidelines4/5

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

Explicitly states 'Use this when the user wants to manually record a past break... not tracked in real-time', providing clear context for use. Implicitly excludes real-time pause cases, but does not name sibling tools like timer_pause as alternatives explicitly.

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

task_createCreate TaskA

Use this when the user wants to manually create a time entry for past work, rather than using the timer.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project ID this task belongs to
startDateTimeYesWhen the work started in ISO 8601 format (e.g., "2025-10-08T09:00:00Z")
endDateTimeNoOptional end time in ISO 8601 format. If provided, creates a completed task.
descriptionNoOptional description of what work was done
billableNoWhether this task should be billable to the client. Defaults to project setting.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe ID of the newly created task
durationNoDuration of the task in seconds (if endDateTime was provided)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=false and destructiveHint=false. Description adds context that it's for past work, but does not disclose additional behaviors like idempotency or required permissions beyond what annotations imply.

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 usage instruction, no wasted words. Perfectly concise.

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

Completeness4/5

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

With output schema and full parameter documentation, the description covers the essential usage context. Could mention side effects or that the entry will appear in logs, but not necessary given other documentation.

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 does not add any parameter-specific details 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 creates a time entry manually for past work, distinguishes from the timer sibling tool, uses specific verb-resource (create a time entry).

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

Usage Guidelines4/5

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

Explicitly says when to use ('manually create a time entry for past work') and when not ('rather than using the timer'). Does not mention other alternatives like task_update or task_delete, but the primary alternative is well-addressed.

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

task_deleteDelete TaskA
DestructiveIdempotent

Use this when the user wants to permanently delete a time entry. WARNING: This is a destructive operation that cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to delete permanently

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the deletion was successful
deletedIdNoThe ID of the deleted task

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds valuable context beyond annotations by stating 'permanent' and 'cannot be undone,' which aligns with the destructive hint. 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 very concise, consisting of two short, front-loaded sentences. Every sentence adds value: one states the usage, the other warns about destructiveness. No wasted words.

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

Completeness5/5

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

Given the low complexity (1 parameter, no nested objects, output schema present, annotations covering destructive behavior), the description is complete. It covers purpose, usage, and behavioral caveats adequately.

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

Parameters3/5

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

Schema coverage is 100% and the parameter 'id' has a description in the schema ('The task ID to delete permanently'). The tool description does not add extra parameter semantics beyond what the schema provides, warranting a 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?

Purpose is clearly stated: permanently delete a time entry. The verb 'delete' and resource 'time entry' are specific. The tool name 'task_delete' and sibling tools (e.g., absence_delete, project_delete) further differentiate this from other delete operations.

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 'Use this when the user wants to permanently delete a time entry,' providing clear context. It does not explicitly list alternatives or when not to use, but the warning about destructiveness helps guide usage.

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

task_getGet TaskA
Read-only

Use this when the user wants to view detailed information about a specific time entry/task.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesTask ID
descriptionNoTask description
projectTitleNoAssociated project title
startDateTimeNoStart date and time
endDateTimeNoEnd date and time
durationNoDuration in seconds
billableNoWhether the task is billable

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is well-covered. The description adds that it provides detailed information, which aligns with readOnly but does not go beyond the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no waste. Every word is informative.

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 (one parameter, no nested objects), rich annotations (readOnlyHint, destructiveHint, openWorldHint), and presence of an output schema, the description is complete enough for an agent to understand the tool's purpose and 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?

The input schema has 100% coverage with a single 'id' parameter described as 'The task ID to retrieve'. The description does not add extra meaning beyond this, which is acceptable given the schema's completeness.

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 action ('view detailed information') and resource ('a specific time entry/task'), distinguishing it from sibling tools like task_list which lists multiple tasks.

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 'Use this when the user wants to view detailed information', which is clear guidance. It does not mention when not to use it or alternatives, but the sibling tool names imply that task_get is for a single item.

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

task_listList TasksA
Read-only

Use this when the user wants to view their time entries. IMPORTANT: When the user asks for a specific number (e.g., "show me 10 tasks"), use the limit parameter to control how many tasks are returned. Always use pagination to avoid loading all tasks unnecessarily. Supports extensive filtering by organization, team, project, user, tags, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tasks to return. Use this when user asks for a specific number (e.g., "10 tasks" = limit: 10). Defaults to 20 if not specified.
pageNoPage number for pagination (1-based). Use with limit to fetch subsequent pages.
sortNoSort field for tasks: dateTime=by start/end time, time=by duration, created=by creation date
orderNoSort order (ascending or descending)
startDateNoFilter tasks starting on or after this date (YYYY-MM-DD format)
endDateNoFilter tasks ending on or before this date (YYYY-MM-DD format)
organizationIdNoFilter tasks by organization ID
teamIdNoFilter tasks by team ID
teamIdsNoFilter tasks by multiple team IDs
projectIdNoFilter tasks for a specific project
projectIdsNoFilter tasks by multiple project IDs
todoIdNoFilter tasks associated with a specific todo/task item
taskIdsNoFilter specific tasks by IDs
rateIdNoFilter tasks by rate/billing rate ID
documentIdNoFilter tasks associated with a specific document
typeNoFilter tasks by type: all=all types, task=regular time entries, mileage=mileage entries, call=call entries
filterNoFilter tasks by billing/payment status: all=all tasks, billable=only billable, notBillable=non-billable, paid=payment received, unpaid=not paid, billed=invoice sent, outstanding=billed but unpaid
excludeTaskIdsNoExclude specific task IDs from results
tagIdsNoFilter tasks by tag IDs
userIdsNoFilter tasks by user IDs (task owners)
feelingsNoFilter tasks by feeling/satisfaction ratings (1-5)
populatePausesNoInclude pause/break information in task details
populateExpensesNoInclude expense information in task details
populateNotesNoInclude notes in task details
populateTagsNoInclude tag details in task information

Output Schema

ParametersJSON Schema
NameRequiredDescription
tasksYesList of tasks matching the criteria

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description reinforces read-only behavior only implicitly and adds pagination guidance. It does not disclose anything beyond what annotations provide, but there is no contradiction.

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

Conciseness4/5

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

The description is three sentences, front-loading the usage instruction. It is concise and informative, though the mention of extensive filtering is redundant given the schema. No wasted sentences.

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 complexity (25 parameters, output schema exists), the description covers usage and filtering but lacks details about default pagination, error handling, or edge cases. The annotations and schema fill some gaps, making it adequate but not 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 the baseline is 3. The description only emphasizes the limit parameter usage without adding new meaning to other parameters. It does not compensate with examples or relationships.

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 starts with 'Use this when the user wants to view their time entries,' which clearly identifies the action and resource. The distinction from siblings like task_get (single task) is implied, but the phrasing 'time entries' may cause slight confusion since the tool lists tasks (which include time entries). Still, the verb and resource are identifiable.

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 this tool ('view their time entries') and provides an important hint about using the limit parameter when a specific number is requested. It also advises using pagination. It does not explicitly exclude alternatives, 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.

task_updateUpdate TaskA

Use this when the user wants to modify details of an existing time entry such as times, description, or billing status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to update
descriptionNoUpdated task description
startDateTimeNoUpdated start time in ISO 8601 format
endDateTimeNoUpdated end time in ISO 8601 format
billableNoUpdated billable status
paidNoMark task as paid (for invoicing)
billedNoMark task as billed (invoice sent to client)

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the update was successful
idNoThe updated task ID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only (false) and not destructive (false). The description adds that it modifies existing entries, which aligns with annotations. It lists examples of modifiable fields, adding mild value 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.

Conciseness4/5

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

The description is a single sentence efficiently conveying the tool's purpose. It could be slightly improved by using 'task' instead of 'time entry' for accuracy, but overall it is concise 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 the presence of annotations, full schema coverage, and an output schema, the description provides sufficient context for a mutation tool. It does not need to explain return values as the output schema exists.

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

Parameters3/5

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

Schema coverage is 100%, and the description's mention of 'times, description, or billing status' simply echoes what is already in the schema parameters. No additional semantic nuance is provided beyond the schema.

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

Purpose4/5

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

The description clearly states it modifies details of an existing time entry, which aligns with the tool's purpose. However, it uses 'time entry' instead of 'task', which could cause minor confusion. It distinguishes well from sibling tools like task_create or task_delete.

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 gives an explicit usage condition ('when the user wants to modify details...'), which provides context. However, it does not mention when not to use it or suggest alternative tools like task_add_expense or timer_update, so guidance is limited.

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

team_listList TeamsA
Read-only

Use this when the user wants to view or search for teams. IMPORTANT: Use this tool to find team IDs by searching team names, which can then be used to filter projects. Supports text search and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch query to filter teams by name (partial match supported)
limitNoMaximum number of teams to return. Defaults to 20 if not specified.
pageNoPage number for pagination (1-based). Use with limit to fetch subsequent pages.
organizationIdNoFilter teams by organization ID
sortNoSort field: alpha=alphabetical by name, permission=by user permission level, created=by creation date
orderNoSort order (ascending or descending)

Output Schema

ParametersJSON Schema
NameRequiredDescription
teamsNoList of teams matching the criteria
totalCountNoTotal number of teams returned

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the description adds value by specifying search and pagination behavior. It does not contradict annotations and provides functional context beyond the safety profile.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then an important workflow note, and features listed. No redundant information, 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?

The tool has an output schema, so return values are covered. The description covers the primary use case and an important downstream use (project filtering). For a tool with many optional parameters, the description is sufficient for an agent to decide when and how to invoke it.

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

Parameters4/5

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

With 100% schema coverage, the description adds meaning by explaining how parameters (search, pagination) support finding team IDs for project filtering, creating a workflow context beyond 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 the tool is for viewing/searching teams and specifies the action (list/view) and resource (teams). It distinguishes from sibling tools by linking the output to project filtering, which is unique among the sibling list.

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 when to use ('when the user wants to view or search for teams') and provides a key workflow hint: finding team IDs to filter projects. No alternative tool exists for teams, so exclusion is not needed.

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

timer_pausePause TimerA

Use this when the user wants to pause the timer to take a break. This temporarily stops time tracking while keeping the task active.

ParametersJSON Schema
NameRequiredDescriptionDefault
startDateTimeNoOptional pause start time in ISO 8601 format (e.g., "2025-10-08T12:00:00Z"). If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesTimer status after pausing

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive nature. The description adds that the pause is temporary and the task remains active, which provides valuable behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is two sentences, concise, and front-loaded with the purpose. Every word 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?

The tool is simple with one optional parameter and an output schema. The description covers the core behavior adequately, though could mention the relation to timer_resume.

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?

There is only one optional parameter with 100% schema coverage. The description adds no extra information about the parameter beyond what is already in the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it pauses the timer for a break, keeping the task active. It uses a specific verb and resource, and distinguishes from siblings like timer_stop and timer_resume.

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 tells when to use ('when the user wants to pause the timer to take a break'). However, it does not mention when not to use or provide alternatives like timer_stop.

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

timer_resumeResume TimerA

Use this when the user wants to resume time tracking after a break or pause. This restarts the timer from its paused state.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateTimeNoOptional pause end time in ISO 8601 format (e.g., "2025-10-08T13:00:00Z"). If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesTimer status after resuming

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate non-readOnly, non-destructive. Description adds that it 'restarts from paused state', providing behavioral detail beyond annotations. Could mention side effects like time entry continuation, but sufficient.

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

Conciseness5/5

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

Two sentences, each essential. First sentence states purpose and when to use, second explains behavior. No fluff.

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?

Tool is simple (resume with optional end time). Description covers purpose, usage, and behavior. Output schema exists, so return values not needed. Complete for the given 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 3. Description does not add meaning beyond schema; it mentions resumption implicitly but no extra parameter details. Adequate.

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 'resume' and the resource 'time tracking/timer'. It distinguishes from sibling tools like timer_pause by specifying 'after a break or pause' and 'restarts from paused state'.

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 the user wants to resume time tracking after a break or pause', providing clear usage context. Does not mention when not to use or alternatives, but the purpose is well-defined.

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

timer_startStart TimerA

Use this when the user wants to begin tracking time on a specific project. The user can optionally specify a custom start time in the past, otherwise it defaults to now.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe unique identifier of the project to track time for. Use project_list to find available projects.
startDateTimeNoOptional start time in ISO 8601 format (e.g., "2025-10-08T10:30:00Z"). If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesCurrent timer status
projectTitleNoName of the project being tracked
projectIdNoID of the project
durationNoCurrent duration in seconds
startTimeNoWhen the timer was started

TDQS

A4.2/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false) with possible side effects (openWorldHint=true). The description adds that startDateTime defaults to now and can be in the past, which is useful beyond annotations. However, it does not disclose what happens if a timer is already running or if the project is invalid.

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

Conciseness5/5

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

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

For a simple tool with two parameters and an output schema, the description covers purpose, params, and default behavior. It could mention error handling or what happens if timer already active, but overall 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 has 100% description coverage. The description adds value by clarifying that startDateTime can be in the past and defaults to now, which is not obvious from the 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 explicitly states the tool starts tracking time on a specific project, clearly distinguishing it from sibling tools like timer_pause or timer_stop.

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 use ('when the user wants to begin tracking time') and mentions optional custom start time, but does not explicitly exclude cases like an already-running timer.

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

timer_statusGet Timer StatusA
Read-only

Use this when the user wants to check the current state of their timer, including whether it's running, paused, or stopped, and details about the active task.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesCurrent timer status
projectTitleNoName of the project being tracked (if active)
projectIdNoID of the project (if active)
descriptionNoTask description (if provided)
durationNoCurrent duration in seconds (if active)
hoursNoHours component of duration
minutesNoMinutes component of duration

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is established. The description adds value by specifying what information is returned (state and active task details), which enhances transparency beyond the annotations.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded and contains no unnecessary words or information.

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 parameterless tool with an output schema, the description sufficiently covers what the tool returns (state and active task details). No missing context is evident, and the description is complete for an AI agent to understand the tool's capabilities.

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 provides complete coverage. Per the rubric, a baseline of 4 is appropriate. The description does not need to add parameter info, and it correctly avoids superfluous details.

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: checking the current timer state (running, paused, stopped) and details about the active task. It uses a specific verb ('check') and resource ('timer status'), and distinguishes from sibling tools like timer_start or timer_pause which have different actions.

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 to use this tool when the user wants to check timer status. While it does not explicitly list when not to use it, the context of sibling tools (e.g., timer_pause, timer_resume) implies this is for read-only queries. A slight improvement would be to mention that it does not modify the timer.

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

timer_stopStop TimerA

Use this when the user wants to stop the currently active timer and complete the time tracking session. The user can optionally specify when the timer should be stopped.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateTimeNoOptional end time in ISO 8601 format (e.g., "2025-10-08T18:00:00Z"). If not provided, uses current time.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesTimer status after stopping
durationYesTotal duration tracked in seconds
hoursNoHours component of duration
minutesNoMinutes component of duration

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already show readOnlyHint=false and destructiveHint=false. The description adds that the timer session is completed. It does not contradict annotations. It provides useful context beyond annotations.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no redundant information, and front-loaded with clear action guidance. Every sentence serves a purpose.

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

Completeness4/5

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

Given the tool has one optional parameter, an output schema, and the description covers the action and usage, it is largely complete. However, it does not address edge cases like what happens if no timer is active.

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

Parameters3/5

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

Schema coverage is 100% and the description mentions the optional end time parameter. It adds some context but does not provide deeper meaning beyond what the schema already specifies. 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 'stop' and the resource 'currently active timer', distinguishing it from sibling tools like timer_pause, timer_resume, etc. It explicitly says 'stop the currently active timer and complete the time tracking session'.

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 starts with 'Use this when the user wants to stop the currently active timer', providing clear guidance. However, it does not explicitly state when not to use it or suggest alternatives like timer_pause for pausing.

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

timer_updateUpdate Timer TaskA

Use this when the user wants to modify details of the currently running timer task, such as description, location, billability, or mood rating.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoTask description or notes about what work is being done
locationNoPhysical location where work started (e.g., "Office", "Home", "Client site")
locationEndNoPhysical location where work ended
feelingNoMood or satisfaction rating from 1 (poor) to 5 (excellent)
billableNoWhether this time should be billed to the client

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the update was successful

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, meaning it modifies state but is not destructive. The description confirms mutation ('modify details'). It does not disclose additional traits (e.g., if timer is paused, what if timer not running, authorization needs). The openWorldHint=true suggests unknown side effects, but description adds no extra transparency.

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

Conciseness5/5

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

Single sentence, front-loaded with the use case, no redundant words. Every word is meaningful 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?

Given 5 optional parameters and an output schema, the description captures the core purpose. It implicitly requires a running timer but doesn't state this explicitly, nor does it clarify that all parameters are optional. Still, it provides sufficient completeness for 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% (all 5 parameters have descriptions). The description lists only some parameters (description, location, billability, mood rating), omitting locationEnd. It adds minimal meaning beyond the schema, simply restating the examples. 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 clearly states the verb 'modify details' and identifies the resource as 'currently running timer task'. It lists specific example fields (description, location, billability, mood rating), distinguishing it from sibling tools like timer_stop (state control) and task_update (non-timer tasks).

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 'use this when the user wants to modify details of the currently running timer task', providing context. However, it does not explicitly mention when not to use it or name alternatives, leaving implicit differentiation from siblings like timer_start or task_update.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 50 tool updatesv1.2.0
    • First observedabsence_approve
    • First observedabsence_cancel
    • First observedabsence_create
    • First observedabsence_delete
    • First observedabsence_get
    • First observedabsence_list
    • First observedabsence_reject
    • First observedabsence_type_list
    • First observedabsence_update
    • First observedauth_configure
    • First observedexport_fields
    • First observedexport_from_template
    • First observedexport_generate
    • First observedexport_report_types
    • First observedexport_send
    • First observedexport_template_create
    • First observedexport_template_delete
    • First observedexport_template_get
    • First observedexport_template_list
    • First observedexport_template_update
    • First observedproject_create
    • First observedproject_delete
    • First observedproject_get
    • First observedproject_list
    • First observedproject_update
    • First observedreport_document_get
    • First observedreport_document_pdf
    • First observedreport_document_xml
    • First observedreport_expense_get
    • First observedreport_expense_pdf
    • First observedreport_note_get
    • First observedreport_note_pdf
    • First observedreport_task_get
    • First observedreport_task_pdf
    • First observedstatistics_get
    • First observedtask_add_expense
    • First observedtask_add_note
    • First observedtask_add_pause
    • First observedtask_create
    • First observedtask_delete
    • First observedtask_get
    • First observedtask_list
    • First observedtask_update
    • First observedteam_list
    • First observedtimer_pause
    • First observedtimer_resume
    • First observedtimer_start
    • First observedtimer_status
    • First observedtimer_stop
    • First observedtimer_update

TDQS

B3.4/5.0
Disambiguation4/5

Tools are grouped by domain (absence, export, project, task, timer, etc.) with clear purposes. However, there are many similar tools like 'export_generate' vs 'export_send' and multiple report tools, which could cause slight confusion despite good descriptions.

Naming Consistency5/5

All tools follow a consistent 'domain_verb' pattern (e.g., absence_create, export_generate, timer_start). No mixing of conventions or vague names.

Tool Count2/5

50 tools is excessive for a timesheet server. Many tools are granular (e.g., separate tools for each report action) and could be consolidated. This adds unnecessary complexity for agents.

Completeness4/5

Covers core CRUD for absences, projects, tasks, exports, and timers. Missing team creation/update and absence type creation/update, but these are minor gaps for the domain.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/timesheetIO/timesheet-mcp'

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