Clockify MCP Server
Provides tools for interacting with the Clockify time tracking API, enabling workspace and project management, time entry tracking with start/stop timers, detailed and summary reporting with filtering and grouping, and management of tags, tasks, and clients.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Clockify MCP Serverstart a timer for working on the API documentation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Clockify MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with the Clockify time tracking API.
Installation
npm install -g @yikizi/clockify-mcpOr use directly with npx:
npx @yikizi/clockify-mcpRelated MCP server: Clockify MCP Server
Features
Workspace Management: List workspaces, get current user, list workspace users
Project Management: List/create projects, list/create tasks
Time Tracking: Start/stop timers, log time entries, update/delete entries
Reporting: Generate summary and detailed reports with grouping and filtering
Tags & Clients: List and create tags, list clients
Setup
1. Get your Clockify API Key
Go to Clockify User Settings
Scroll to "API" section
Click "Generate" to create an API key
2. Configure Claude Code
Add to your Claude Code MCP settings (~/.claude.json or via Claude Code settings):
Option A: CLI argument (recommended)
{
"mcpServers": {
"clockify": {
"command": "npx",
"args": ["@yikizi/clockify-mcp", "--api-key", "your-api-key-here"]
}
}
}Option B: Environment variable
{
"mcpServers": {
"clockify": {
"command": "npx",
"args": ["@yikizi/clockify-mcp"],
"env": {
"CLOCKIFY_API_KEY": "your-api-key-here"
}
}
}
}Option C: .env file
Create a .env file in your working directory:
CLOCKIFY_API_KEY=your-api-key-hereAvailable Tools
Convenience Tools (Recommended)
These auto-detect your user and workspace:
start_timer- Start a timer (just provide description and optional project)stop_current_timer- Stop whatever timer is runningget_running_timer- Check if a timer is running and see elapsed timelog_time- Log completed time with human-readable duration ("1h30m", "2h", "45m")
Workspace Tools
get_workspaces- List all workspacesget_current_user- Get authenticated user infoget_workspace_users- List users in a workspace
Project Tools
get_projects- List projects (with archive filter)create_project- Create a new projectget_project_tasks- List tasks in a projectcreate_task- Create a task
Time Entry Tools (Low-level)
get_time_entries- Get time entries for a user (with date/project filters)create_time_entry- Create a time entry (usestart_timerorlog_timeinstead)stop_timer- Stop timer for specific user (usestop_current_timerinstead)update_time_entry- Update an existing entrydelete_time_entry- Delete a time entry
Reporting Tools
get_summary_report- Aggregated report grouped by project/user/clientget_detailed_report- Detailed list of time entries with filters
Tag & Client Tools
get_tags- List all tagscreate_tag- Create a new tagget_clients- List all clients
Usage Examples
Once configured, you can ask Claude things like:
"Start a timer for working on the API project"
"Stop my timer"
"Log 2 hours for documentation work"
"Is my timer running?"
"Generate a summary report for last week"
"How much time did I log this month?"
"List all my projects"
Changelog
v1.2.2
Config: API key can now be passed via
--api-keyCLI argumentConfig: API key can be read from
.envfile in current directoryImprovement: Better error message showing all config options
v1.2.1
Bugfix:
get_running_timernow properly finds running timers (was only checking 1 entry)Bugfix:
stop_current_timernow correctly stops timersImprovement:
stop_current_timeraccepts optionalendtime for backdating
v1.2.0
Human-readable durations in responses (
1h 30minstead ofPT1H30M)Relative period filters for
get_time_entries:today,yesterday,this_week,last_week,this_month,last_monthget_time_entriesnow defaults to current user/workspace (no IDs needed!)Responses include total time across all entries
v1.1.0
Added convenience tools:
start_timer,stop_current_timer,get_running_timer,log_timeAuto-detect user and workspace (no need to call
get_current_userfirst)Human-readable duration format ("1h30m") for
log_timeInput validation to catch date typos early
Warns if timer is already running when starting a new one
v1.0.0
Initial release with core Clockify API support
License
MIT
Available Tools
21 toolscreate_projectC
Create a new project. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| name | Yes | Project name | |
| clientId | No | Client ID to associate | |
| color | No | Project color (hex code like #FF5733) | |
| billable | No | Whether project is billable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool creates a new project and auto-detects workspace, but lacks details on permissions required, whether creation is idempotent, what happens on duplicate names, or the response format. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose and includes a useful behavioral note about workspace auto-detection, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, response format, or dependencies, leaving significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional parameter semantics beyond what's in the schema, such as examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new project'), and mentions the auto-detection of workspace, which provides useful context. However, it doesn't explicitly differentiate this from sibling tools like 'create_task' or 'create_tag' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance, mentioning auto-detection of workspace but not when to use this tool versus alternatives like 'get_projects' for checking existing projects or 'create_task' for related resources. No explicit when/when-not instructions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagC
Create a new tag. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| name | Yes | Tag name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Create a new tag', implying a mutation, but doesn't disclose behavioral traits like required permissions, whether it's idempotent, error handling, or response format. The auto-detection note adds some context but is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that are front-loaded and waste no words. Every part ('Create a new tag', 'Auto-detects workspace') adds value, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permissions, errors), output values, and comprehensive usage guidelines. The high schema coverage helps, but overall, it doesn't provide enough context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (workspaceId and name) with descriptions. The description adds 'Auto-detects workspace', which provides extra meaning for workspaceId's default behavior, but doesn't elaborate on name constraints or other semantics. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new tag') and resource ('tag'), which is specific and unambiguous. It distinguishes from siblings like 'get_tags' by indicating a write operation. However, it doesn't explicitly differentiate from other creation tools like 'create_project' or 'create_task' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance with 'Auto-detects workspace', hinting at when to use the workspaceId parameter, but offers no explicit when-to-use advice, no mention of prerequisites (e.g., permissions), and no alternatives (e.g., when to use this vs. other tag-related tools). It lacks context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskB
Create a task in a project. Use get_projects first to get project ID.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| projectId | Yes | The project ID (use get_projects to find IDs) | |
| name | Yes | Task name | |
| assigneeIds | No | User IDs to assign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't disclose any behavioral traits like required permissions, whether the task is immediately active, error conditions, or what happens on success. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that are front-loaded and waste no words. Every sentence earns its place by stating the core purpose and providing essential usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after creation (e.g., returns task ID, error handling), behavioral constraints, or how it differs from sibling creation tools. The 100% schema coverage helps parameters but doesn't compensate for missing behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds minimal value beyond the schema by reinforcing the need for projectId via 'Use get_projects first,' but doesn't provide additional semantic context about parameters like workspaceId defaults or assigneeIds format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a task') and target resource ('in a project'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'create_project' or 'create_tag' beyond the resource type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to 'Use get_projects first to get project ID,' which gives clear context for when to use this tool. However, it doesn't mention when NOT to use it or alternatives for similar operations, such as whether 'create_project' should be used first if no project exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_time_entryA
Create time entry (low-level). Prefer start_timer or log_time instead.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| start | Yes | Start time (ISO 8601). Use current time to start a timer. | |
| end | No | End time (ISO 8601). Omit to start a running timer. | |
| description | No | Description of work done | |
| projectId | No | Project ID | |
| taskId | No | Task ID | |
| billable | No | Whether entry is billable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool is 'low-level,' it doesn't explain what that entails (e.g., whether it requires specific permissions, how it handles errors, or if it has side effects like affecting billing). The description lacks details on behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two short sentences, front-loading the core purpose and immediately following with usage guidance. Every word serves a clear purpose, with no wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, mutation operation) and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, error handling, or return values, which are critical for a creation tool. However, the usage guidance and clear purpose provide some context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between parameters or providing examples. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('time entry'), making the purpose immediately understandable. It distinguishes this tool from siblings by labeling it as 'low-level' and mentioning alternatives, though it doesn't specify what makes it low-level versus the alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance by stating 'Prefer start_timer or log_time instead,' which clearly indicates when not to use this tool and names specific alternatives. This helps the agent understand the tool's role in the context of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_time_entryC
Delete a time entry by ID. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| timeEntryId | Yes | The time entry ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Auto-detects workspace' as a helpful trait, but fails to cover critical aspects like permissions needed, whether deletion is reversible, rate limits, or error handling. This is inadequate for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core action and includes a useful behavioral note, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a destructive tool with no annotations and no output schema, the description is incomplete. It lacks details on permissions, reversibility, response format, or error cases, which are essential for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no additional meaning beyond implying workspace auto-detection, which is partially covered in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a time entry by ID'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_time_entry' or 'get_time_entries' beyond the action itself, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'update_time_entry' for modifications or 'get_time_entries' for viewing. It also lacks prerequisites or exclusions, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clientsC
List all clients. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Auto-detects workspace' which provides some behavioral context about default parameter handling. However, it doesn't describe important aspects like whether this is a read-only operation, what format the list returns, if there's pagination, rate limits, or authentication requirements. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two short sentences that communicate the core functionality and one key behavioral aspect. Every word earns its place, and the information is front-loaded with the primary purpose stated first. There's zero wasted verbiage or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a data retrieval tool with no annotations and no output schema, the description should do more to explain what the tool returns and any behavioral constraints. While the purpose is clear, important context is missing about the return format, pagination, error conditions, or how this fits within the broader system of sibling tools. The description is too minimal for a tool that presumably returns client data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds marginal value by mentioning 'Auto-detects workspace' which implies the workspaceId parameter defaults to the active workspace, but this is already stated in the schema description. The description doesn't provide additional parameter semantics beyond what's in the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('clients'), making the purpose understandable. It doesn't explicitly distinguish from sibling tools like 'get_workspace_users' or 'get_tags', but the resource specificity ('clients') provides some differentiation. The mention of 'Auto-detects workspace' adds useful context about default behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While it mentions auto-detection of workspace, it doesn't explain when you'd want to override this with the workspaceId parameter or how this tool relates to other get_* tools in the sibling list. The description lacks any 'when-to-use' or 'when-not-to-use' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_userB
Get current user info including active workspace ID
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what data is returned but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or whether it's a read-only operation (implied by 'Get' but not explicit).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get current user info') and adds a specific detail ('including active workspace ID') without any wasted words. It's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has gaps. It explains what data is returned but lacks context on authentication, errors, or usage scenarios, making it minimally viable for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, with schema description coverage at 100%. The description doesn't need to add parameter details, so it appropriately focuses on output semantics ('current user info including active workspace ID'), earning a baseline score for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current user info', specifying it includes 'active workspace ID'. It distinguishes this from sibling tools that focus on projects, tasks, time entries, etc., but doesn't explicitly differentiate from other user-related tools (none exist in siblings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description implies it retrieves user-specific data, but there's no mention of prerequisites (e.g., authentication) or comparison to other tools for user information (none in siblings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailed_reportC
Detailed report with individual entries. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| dateRangeStart | Yes | Report start date (ISO 8601) | |
| dateRangeEnd | Yes | Report end date (ISO 8601) | |
| userIds | No | Filter by user IDs | |
| projectIds | No | Filter by project IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'auto-detects workspace', which hints at default behavior, but fails to disclose critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication requirements, or what happens if parameters are omitted. For a tool with 5 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence, which is efficient and front-loaded. However, it may be overly brief given the tool's complexity, potentially sacrificing clarity for brevity. Every word earns its place, but more detail could improve usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the report contains, how entries are structured, or what the return value looks like. For a 'detailed report' tool with multiple filters, this lack of context makes it inadequate for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds minimal value beyond the schema by implying workspace auto-detection for the 'workspaceId' parameter, but doesn't provide additional context for other parameters like date formats or filtering logic. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves a 'detailed report with individual entries' and mentions 'auto-detects workspace', which provides a basic purpose. However, it lacks specificity about what type of report (e.g., time tracking, financial) and doesn't clearly differentiate from sibling tools like 'get_summary_report' or 'get_time_entries', making the purpose somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'auto-detects workspace' but doesn't explain when this is beneficial or when to choose this over similar tools like 'get_summary_report' or 'get_time_entries'. No explicit when/when-not instructions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsA
List projects. Call first to get project IDs. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| archived | No | Filter by archived status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool auto-detects workspace and is intended as a first call to get IDs, which are useful behavioral traits. However, it doesn't mention pagination, rate limits, permissions needed, or what format the list returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just two short sentences, with zero wasted words. It's front-loaded with the core purpose and follows with important usage context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 parameters and no output schema, the description provides adequate but minimal context. It covers the purpose and some behavioral aspects but lacks details about return format, pagination, or error conditions that would be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter information beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'projects', making the purpose immediately understandable. It distinguishes from siblings by specifying it's for getting project IDs, but doesn't explicitly differentiate from other list tools like get_clients or get_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance with 'Call first to get project IDs' and mentions auto-detection of workspace, but doesn't explicitly state when to use this versus alternatives like get_project_tasks or get_workspaces. No clear exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_tasksB
List tasks for a project. Use get_projects first to get project ID.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| projectId | Yes | The project ID (use get_projects to find IDs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states it's a list operation, but doesn't mention whether it's paginated, what permissions are required, if it's rate-limited, or what the return format looks like. For a read tool with zero annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a concise usage tip. Every sentence earns its place with no wasted words, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain behavioral traits like pagination or permissions, and while it hints at the return type ('tasks'), it doesn't detail the structure or fields. For a tool with 2 parameters and no structured output, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('workspaceId' and 'projectId') with descriptions. The description adds value by reinforcing the need to use 'get_projects' for the 'projectId', but doesn't provide additional syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('tasks for a project'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from similar sibling tools like 'get_time_entries' or 'get_summary_report', which might also involve task-related data, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by instructing to 'Use get_projects first to get project ID,' which is a helpful prerequisite. However, it doesn't specify when to use this tool versus alternatives like 'get_time_entries' or 'get_detailed_report' for task-related queries, so it lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_running_timerB
Check if timer is running. Auto-detects workspace/user.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to user's active workspace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'checks' status and 'auto-detects,' which implies a read-only, non-destructive operation. However, it doesn't disclose important behavioral traits: what specific data is returned (e.g., timer details, elapsed time), error conditions (e.g., what happens if no timer is running), or performance characteristics. The description is minimal and leaves key behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two short sentences) with zero wasted words. The first sentence states the core purpose, and the second adds important behavioral context. Every element earns its place, and the information is front-loaded with the primary function stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and auto-detection behavior but leaves significant gaps: no information about return values (critical for a status check tool), no error handling details, and no context about how this integrates with timer control tools. For a status-checking tool, the description should ideally specify what information is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema. While the schema has 100% coverage for the single parameter (workspaceId with default behavior documented), the description's 'Auto-detects workspace/user' provides crucial semantic context about automatic detection logic that isn't captured in the schema's parameter description. This compensates for the schema's technical focus with practical usage information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check if timer is running' specifies the verb (check) and resource (timer status). It distinguishes from siblings like start_timer/stop_timer by focusing on status checking rather than control. However, it doesn't explicitly differentiate from other read operations like get_time_entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context through 'Auto-detects workspace/user,' suggesting it's for checking current timer status without manual identification. However, it lacks explicit guidance on when to use this versus alternatives like get_time_entries (which might show timer data) or stop_current_timer (which requires knowing if a timer is running). No when-not-to-use or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summary_reportB
Summary report grouped by project/user. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| dateRangeStart | Yes | Report start date (ISO 8601) | |
| dateRangeEnd | Yes | Report end date (ISO 8601) | |
| groupBy | No | How to group results (default: PROJECT, USER) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only mentions 'auto-detects workspace' as behavioral context. It doesn't disclose whether this is a read-only operation, what permissions are needed, how results are formatted, whether pagination exists, or any rate limits. For a reporting tool with 4 parameters, this is inadequate behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) with zero wasted words. It's front-loaded with the core purpose and includes one important behavioral note. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reporting tool with 4 parameters and no output schema, the description is minimally adequate. It covers the basic purpose but lacks important context about return format, data scope, or behavioral constraints. With no annotations and no output schema, more completeness would be expected for proper agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds minimal value by implying grouping functionality ('grouped by project/user') and workspace auto-detection, but doesn't provide additional semantic context beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a 'summary report grouped by project/user' with 'auto-detects workspace' functionality, providing specific verb (get) and resource (summary report). It distinguishes from siblings like get_detailed_report by specifying 'summary' nature, though it doesn't explicitly contrast with other reporting tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating grouped summary reports and mentions auto-detection of workspace, but provides no explicit guidance on when to use this versus alternatives like get_detailed_report or get_time_entries. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagsB
List all tags. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Auto-detects workspace' which adds useful context about default behavior, but fails to describe critical aspects like whether this is a read-only operation, pagination, rate limits, authentication needs, or what format the returned tags have. For a tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two short sentences that each add value. The first sentence states the core purpose, and the second adds important behavioral context about workspace detection. There is zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one optional parameter and no output schema, the description provides adequate but minimal context. It covers the basic purpose and workspace detection behavior, but doesn't address what the return data looks like, error conditions, or how it differs from other get_* tools. The absence of annotations and output schema means more descriptive context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single optional parameter 'workspaceId'. The description adds no additional parameter semantics beyond what's in the schema. The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all tags') and resource ('tags'), making the purpose immediately understandable. It distinguishes itself from siblings like 'create_tag' by being a read operation. However, it doesn't specify whether this returns all tags globally or within a specific scope beyond workspace detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to retrieve tags, with the 'Auto-detects workspace' hint suggesting it's context-aware. However, it provides no explicit guidance on when to use this versus alternatives like 'get_projects' or 'get_workspaces', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_entriesB
Get time entries. Supports period filter (today, this_week, last_month). Auto-detects workspace/user.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| userId | No | User ID (defaults to current user) | |
| start | No | Start date (ISO 8601, e.g., 2024-01-01T00:00:00Z) | |
| end | No | End date (ISO 8601) | |
| period | No | Relative period: today, yesterday, this_week, last_week, this_month, last_month | |
| projectId | No | Filter by project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Auto-detects workspace/user', which adds useful context about default behavior. However, it fails to disclose critical traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what the return format looks like (e.g., list of entries, pagination). For a retrieval tool with no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that efficiently convey key information: the core action and filtering capabilities. It's front-loaded with the main purpose. However, the second sentence could be slightly more structured (e.g., clarifying that auto-detection applies when parameters are omitted).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool with 6 parameters. It covers the purpose and some behavioral context (auto-detection) but lacks details on return values, error handling, or usage constraints. For a retrieval tool in a server with many siblings, more guidance on output and differentiation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value by mentioning 'period filter' and 'Auto-detects workspace/user', which aligns with parameters like 'period', 'workspaceId', and 'userId' but doesn't provide additional semantics beyond what's in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'time entries', making the purpose evident. It distinguishes itself from siblings like 'get_detailed_report' or 'get_summary_report' by focusing on time entries rather than reports. However, it doesn't explicitly differentiate from 'get_projects' or 'get_tags', which are also retrieval tools but for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'Supports period filter' and 'Auto-detects workspace/user', suggesting it's for retrieving time entries with optional filtering. However, it lacks explicit guidance on when to use this versus alternatives like 'get_detailed_report' for more comprehensive data or 'get_summary_report' for aggregated insights. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspacesB
List all workspaces. Call first if you need workspace IDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool lists workspaces and hints at its use for obtaining IDs, but fails to describe key behaviors such as whether it returns all workspaces at once (e.g., pagination), what data fields are included, or any rate limits or permissions required. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that are front-loaded and waste no words. Every part adds value: the first sentence states the core purpose, and the second provides practical usage advice, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is adequate as a minimum viable explanation. However, it lacks details on return values (e.g., what data is included in the list) and behavioral aspects like pagination or permissions, which are important for completeness even in simple tools. This makes it just sufficient but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't waste space on parameters, earning a high score. A perfect 5 is reserved for cases where parameter semantics are explicitly addressed when needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all workspaces'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_workspace_users' or 'get_clients' that might also relate to workspace data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by stating 'Call first if you need workspace IDs,' which suggests this tool should be used early in workflows to obtain IDs for other operations. However, it doesn't explicitly state when not to use it or name alternatives among siblings, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_usersA
List users in workspace. Auto-detects workspace if not specified.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions auto-detection behavior, which is helpful, but doesn't address critical aspects like whether this is a read-only operation, what permissions are required, how results are formatted (list structure, pagination), or error conditions. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence states the core purpose, and the second adds important behavioral context about default behavior. There's zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (list operation with one optional parameter), no annotations, and no output schema, the description provides basic completeness but lacks details about return format, pagination, authentication requirements, or error handling. It's adequate as a minimum viable description but has clear gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds the auto-detection context ('defaults to active workspace'), which provides useful semantic meaning beyond the schema's technical description. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List users') and resource ('in workspace'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling user-related tools (though none exist in the provided list), so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use it ('Auto-detects workspace if not specified'), which helps the agent understand the default behavior. However, it doesn't explicitly state when NOT to use it or mention alternatives for user-related operations, preventing a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_timeC
Log completed time with duration like "1h30m". Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | What you worked on | |
| duration | Yes | Duration in human format (e.g., "1h30m", "2h", "45m") | |
| projectId | No | Project ID | |
| workspaceId | No | Workspace ID (defaults to user's active workspace) | |
| billable | No | Whether this is billable | |
| date | No | Date for the entry (ISO 8601, defaults to today) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions auto-detection of workspace (helpful context), it doesn't address important behavioral aspects: whether this creates new records or updates existing ones, what permissions are required, whether it's idempotent, what happens on failure, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just two brief sentences that communicate essential information without any wasted words. It's front-loaded with the core purpose and includes only necessary additional context about workspace auto-detection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, what happens on success/failure, or how it differs from similar sibling tools. The auto-detection hint is helpful but insufficient for proper contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema - it only reinforces the duration format example ('1h30m') which is already in the schema. No additional parameter semantics are provided, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Log completed time with duration like "1h30m"'. It specifies the action (log), resource (time), and format requirement. However, it doesn't explicitly differentiate from sibling tools like 'create_time_entry' or 'update_time_entry', which appears to be a related functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Auto-detects workspace' which provides some context about default behavior, but offers no explicit guidance on when to use this tool versus alternatives like 'create_time_entry' or 'update_time_entry'. There's no mention of prerequisites, dependencies, or specific scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_timerB
Start a timer. Auto-detects workspace. Use get_projects for project IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | What you are working on | |
| projectId | No | Project ID | |
| workspaceId | No | Workspace ID (defaults to user's active workspace) | |
| billable | No | Whether this is billable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Auto-detects workspace' which adds useful context about default behavior, but fails to describe critical aspects like whether this tool requires authentication, what happens if a timer is already running, error conditions, or the response format. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that both add value. The first sentence states the core purpose, and the second provides important contextual guidance about workspace auto-detection and project ID sourcing. There's no wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, no annotations, and no output schema, the description is incomplete. While concise, it lacks information about authentication requirements, error handling, what the tool returns, whether it's idempotent, or how it interacts with other timer-related tools. The agent would need to guess about important behavioral aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions, maintaining the baseline score. It doesn't explain parameter relationships or provide usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a timer') and resource ('timer'), making the purpose immediately understandable. It distinguishes from sibling tools like 'stop_timer' or 'get_running_timer' by specifying the starting action, though it doesn't explicitly contrast with all alternatives like 'log_time'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning 'Auto-detects workspace' and referring to 'get_projects for project IDs', which implies when to use related tools. However, it lacks explicit guidance on when to choose this tool over alternatives like 'log_time' or 'create_time_entry', and doesn't specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_current_timerA
Stop running timer. Auto-detects workspace/user.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to user's active workspace) | |
| end | No | End time override (ISO 8601, defaults to now). Use if you forgot to stop earlier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it stops a timer, auto-detects workspace/user, and implies it targets the 'current' or 'running' timer. However, it lacks details on permissions needed, error conditions (e.g., if no timer is running), or what happens after stopping (e.g., does it log the time?). This is adequate but has gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two short sentences that are front-loaded with the core action. Every word earns its place, with no wasted text, making it easy for an AI agent to parse quickly and accurately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters with full schema coverage but no annotations or output schema, the description is minimally complete. It covers the basic action and auto-detection behavior, but for a mutation tool that stops a timer, it lacks details on side effects, success indicators, or error handling. This is adequate but leaves room for improvement in contextual richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the two parameters (workspaceId and end). The description adds no parameter-specific information beyond implying auto-detection relates to workspaceId. Since the schema handles the heavy lifting, a baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop running timer') and the resource ('timer'), making the purpose immediately understandable. It distinguishes from sibling tools like 'stop_timer' by specifying 'current' timer and auto-detection behavior, though it doesn't explicitly contrast with 'stop_timer' which might have different parameter requirements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'Auto-detects workspace/user,' suggesting this tool should be used when the agent wants to stop whatever timer is currently running without specifying workspace/user. However, it doesn't explicitly state when to use this vs. 'stop_timer' or provide clear alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_timerA
Stop timer (low-level). Prefer stop_current_timer instead.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| userId | No | User ID (defaults to current user) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states this is 'low-level' without explaining what that means operationally (e.g., requires manual ID specification vs. automatic detection, potential for errors if wrong IDs are provided). This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two brief sentences that each serve a clear purpose: stating the action and providing critical usage guidance. There is zero wasted text, and the most important information (the alternative tool) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's apparent complexity (stopping a timer with ID parameters) and lack of both annotations and output schema, the description is minimally adequate. It identifies the tool and provides crucial sibling differentiation, but fails to explain behavioral implications of being 'low-level' or what happens when the tool executes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (workspaceId and userId) with their types and default behaviors. The description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Stop') and resource ('timer'), making the purpose immediately understandable. However, it doesn't specify what 'timer' refers to in this context (e.g., a time-tracking timer) or what stopping entails, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance by stating 'Prefer stop_current_timer instead.' This clearly indicates when NOT to use this tool and names a specific alternative, which is ideal for helping an agent choose between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_time_entryC
Update a time entry by ID. Auto-detects workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID (defaults to active workspace) | |
| timeEntryId | Yes | The time entry ID to update | |
| start | No | New start time (ISO 8601) | |
| end | No | New end time (ISO 8601) | |
| description | No | New description | |
| projectId | No | New project ID | |
| billable | No | New billable status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'auto-detects workspace' which adds some context about default behavior, but fails to disclose critical mutation traits: permission requirements, whether updates are reversible, what happens to unspecified fields, or error conditions. For a write operation with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just 8 words in a single sentence. It's front-loaded with the core purpose ('Update a time entry by ID') and adds one useful behavioral note ('Auto-detects workspace'). Every word earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, error conditions, permission requirements, or how it differs from sibling time-tracking tools. The 100% schema coverage helps with parameters, but behavioral context is severely lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema - only implying that workspaceId has auto-detection behavior. No additional parameter semantics, constraints, or usage examples are provided, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('update') and resource ('time entry by ID'), making the purpose unambiguous. It distinguishes from siblings like 'create_time_entry' and 'delete_time_entry' by specifying update functionality. However, it doesn't explicitly differentiate from other update-like operations in 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance - only mentioning that it 'auto-detects workspace' which suggests some context about workspace selection. No explicit guidance on when to use this vs alternatives like 'log_time' or 'stop_timer' for time tracking operations, nor any prerequisites or exclusions.
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.
21 tool updates
v1.0.0- First observed
create_project - First observed
create_tag - First observed
create_task - First observed
create_time_entry - First observed
delete_time_entry - First observed
get_clients - First observed
get_current_user - First observed
get_detailed_report - First observed
get_project_tasks - First observed
get_projects - First observed
get_running_timer - First observed
get_summary_report - First observed
get_tags - First observed
get_time_entries - First observed
get_workspace_users - First observed
get_workspaces - First observed
log_time - First observed
start_timer - First observed
stop_current_timer - First observed
stop_timer - First observed
update_time_entry
TDQS
Most tools have distinct purposes, but there is some overlap between time entry tools: create_time_entry, log_time, and start_timer all handle time tracking, with descriptions indicating preferences (e.g., 'prefer start_timer or log_time instead'), which could cause confusion. Similarly, stop_current_timer and stop_timer are redundant. However, other tools like get_projects, create_task, and get_reports are clearly differentiated.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include create_project, get_projects, start_timer, and update_time_entry. This predictability makes it easy for agents to understand and navigate the toolset without confusion from mixed naming conventions.
With 21 tools, the count is borderline high for a time-tracking server, leaning toward heavy. While it covers many aspects of Clockify's functionality, some tools like stop_timer and stop_current_timer could be consolidated to reduce redundancy. A more streamlined set of 15-18 tools might be more appropriate for the scope.
The toolset provides comprehensive coverage for time-tracking and project management in Clockify. It includes CRUD operations for projects, tasks, tags, and time entries, along with reporting (detailed and summary), user and workspace management, and timer controls. There are no obvious gaps; agents can perform full workflows from setup to reporting without dead ends.
Maintenance
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
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Track billable time from your AI chat: timers, entries, reports, CSV export. All data stays local.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceIntegrates with Clockify to manage time entries through natural language prompts, allowing users to register and track their work time directly via LLM conversations.26-
- AlicenseNot gradedqualityDmaintenanceIntegrates with Clockify time tracking API to retrieve user information, manage projects, and log time entries with flexible time specifications across workspaces.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Clockify time tracking API to manage time entries, projects, tasks, and workspaces through natural language commands.355ISC
- AlicenseNot gradedqualityDmaintenanceEnables time tracking and management in Clockify through natural language commands. Supports creating time entries, managing projects, clients, and tags.17MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Yikizi/clockify-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server