Tempus MCP
Tempus MCP is a Model Context Protocol server that gives AI assistants full access to your Toggl Track time tracking data through natural language.
Time Entry Management:
List time entries with optional filtering by date range or modification time
Get the currently running time entry and stop an active timer
Create time entries for any date (past or future) with project assignment, tags, billable status, and custom start/stop times
Update existing time entries (description, project, times, duration, tags, billable status)
Delete time entries permanently
Project Management:
List all projects in a workspace
Get details of a specific project by ID
Create new projects with options for name, color, billable default, client association, and privacy settings
Workspace & User Info:
List all accessible workspaces and get details for a specific workspace
Retrieve the authenticated user's profile (including default workspace ID)
List all clients within a workspace
Provides tools for interacting with Toggl Track, enabling AI agents to manage time entries (create, read, update, delete, stop, get current), projects (list, get, create), workspaces, clients, and user profile through the Toggl Track API.
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., "@Tempus MCPCreate a time entry for yesterday 2-4pm on Design project."
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.
Tempus MCP ⏱️
Tempus (Latin for "time") — An MCP server for Toggl Track.
A Model Context Protocol (MCP) server that provides AI assistants with full access to your Toggl Track time tracking data. Create time entries for past dates, manage projects, query workspaces, and more — all through natural language.
Tools
Time Entries
Tool | Description |
| List time entries with optional date filtering |
| Get the currently running time entry |
| Create time entries for any date (past or future) with project assignment, tags, and billable status |
| Update existing time entries (description, project, start/stop, duration) |
| Permanently delete a time entry |
| Stop a running time entry |
Projects
Tool | Description |
| List all projects in a workspace |
| Get a single project by ID |
| Create a new project |
Workspaces & User
Tool | Description |
| List all accessible workspaces |
| Get workspace details |
| Get authenticated user profile |
| List clients in a workspace |
Related MCP server: Toggl MCP Server
Installation
npm install -g tempus-mcp
# or
npx tempus-mcpUsage
1. Get your Toggl API Token
Go to https://track.toggl.com/profile and copy your API token.
2. Run the MCP server
export TOGGL_API_TOKEN="your_token_here"
tempus-mcp3. Configure your MCP client
Claude Desktop:
{
"mcpServers": {
"tempus": {
"command": "tempus-mcp",
"env": {
"TOGGL_API_TOKEN": "your_token_here"
}
}
}
}Opencode / other MCP clients (recommended):
If your MCP client does not reliably pass environment variables through npx, pass the token directly via CLI arguments:
{
"mcpServers": {
"tempus": {
"command": ["npx", "-y", "tempus-mcp", "--token", "your_token_here", "--workspace-id", "12345678"]
}
}
}Other MCP clients: The server uses stdio transport, compatible with any MCP client.
Environment Variables
Variable | Required | Description |
| ✅ | Your Toggl Track API token |
| ❌ | Default workspace ID for convenience |
| ❌ | API base URL (default: |
Features
✅ Past date time slots — Create time entries for any date in the past
✅ Project assignment — Assign entries to any project
✅ Full CRUD — Create, read, update, delete time entries
✅ Billable tracking — Mark entries as billable
✅ Tag support — Add tags to time entries
✅ Running entries — Start, stop, and query current timer
Development
git clone https://github.com/Kos-M/tempus-mcp.git
cd tempus-mcp
npm install
npm run build
TOGGL_API_TOKEN=your_token npm startLicense
MIT
Available Tools
12 toolstoggl_create_projectC
Create a new project in a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| name | Yes | Project name | |
| client_id | No | Client ID to associate | |
| is_private | No | Whether the project is private | |
| billable | No | Whether entries are billable by default | |
| color | No | Project color hex code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'create,' but omits whether the project is returned, what happens on error, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no fluff. Could be slightly expanded without losing conciseness, but current is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not explain what the tool returns or any error conditions. For a creation tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description need not add much. It does not provide additional meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a new project in a workspace. The resource and action are specific, and sibling tools do not include another creation tool, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No mention of 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.
toggl_create_time_entryA
Create a new time entry. Supports past dates - you can create time slots for any date in the past with an assigned project.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| description | No | Time entry description | |
| project_id | No | Project ID to assign | |
| billable | No | Whether the entry is billable | |
| tags | No | Tags for the entry | |
| start | Yes | Start time in ISO 8601 format (e.g. 2026-06-08T07:00:00.000Z). Supports past dates. | |
| stop | No | Stop time in ISO 8601 format. Omit for a running entry. | |
| duration | No | Duration in seconds. If stop is provided, duration is calculated automatically. |
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 only mentions past date support, omitting other behavioral traits like authentication, rate limits, or consequences of invalid inputs. Minimal disclosure for a mutation with 8 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each serving a purpose: first states core action, second adds key behavioral nuance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters and no output schema, the description is too sparse. It does not explain return values, interaction between duration and stop, or handling of null project_id. Lacks completeness for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description adds context about past dates, which reiterates the 'start' parameter description. No additional meaning beyond 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?
Description clearly states 'Create a new time entry' with a specific verb and resource. It distinguishes from sibling tools like toggl_update_time_entry by focusing on creation and highlighting support for past dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for creating entries, especially for past dates, but does not explicitly exclude alternatives like updating existing entries or note when to use different tools. Lacks explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_delete_time_entryB
Delete a time entry permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| time_entry_id | Yes | Numeric time entry ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'permanently,' indicating irreversibility, which is a key behavioral trait. However, it does not disclose other behaviors such as effects on running entries, cascading deletions, or error states. With no annotations, the description carries the full burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of five words, very concise and front-loaded with the tool's purpose. It could be slightly more informative without losing conciseness, but it avoids unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (2 parameters, no output schema, no annotations), the description provides the core action and permanence. However, it omits details like idempotency, error scenarios, or impact on reports. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters ('Numeric workspace ID', 'Numeric time entry ID'), achieving 100% coverage. The description adds no additional parameter-level detail, so it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Delete a time entry permanently.' It specifies the verb (Delete) and the resource (time entry), making it distinct from siblings like update or stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs. alternatives like toggl_stop_time_entry or toggl_update_time_entry. The description lacks context about prerequisites or scenarios where deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_get_current_time_entryA
Get the currently running time entry, if any.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only hints at potential null return with 'if any' but does not specify return format, error behavior, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (9 words) front-loaded with the verb, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool, the description adequately states its purpose but could be more explicit about the return value (e.g., time entry object or null).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (empty). The description adds no parameter info, but none is 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 'Get' and the specific resource 'currently running time entry', distinguishing it from sibling tools like toggl_get_time_entry (specific ID) and toggl_list_time_entries (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 implies use when checking for a running entry with 'if any', but lacks explicit guidance on when not to use or references to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_get_meA
Get the authenticated user profile, including default 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 of behavioral disclosure. It correctly indicates that the tool requires authentication (implied by 'authenticated'). It does not disclose any other behavioral traits such as rate limits, caching, or side effects, but for a simple read operation, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key information. There is 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 has no parameters, no output schema, and is a simple retrieval, the description is complete. It specifies what the user gets (profile including default workspace ID). No additional information is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so no parameter documentation is needed. The description does not add any parameter semantics, but it is not required. According to the rubric, zero parameters have a baseline of 4, which 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: retrieving the authenticated user profile, including the default workspace ID. It uses a specific verb ('Get') and resource ('authenticated user profile'), and it distinguishes itself from sibling tools like toggl_get_workspace or toggl_get_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool vs alternatives. However, as a simple profile retrieval with no parameters, its use case is self-evident. It does not mention any prerequisites or exclusions, but the context is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_get_projectC
Get a single project by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| project_id | Yes | Numeric project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states a read operation. No mention of authorization, error handling, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, but it is somewhat underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and sibling tools, the description is minimal. It does not explain the response format or error scenarios, but for a simple get it is marginally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a single project by ID', clearly specifying the verb (get), resource (project), and scope (single by ID). It distinguishes from sibling tool toggl_list_projects which lists multiple projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as toggl_list_projects, or any prerequisites beyond the required parameters in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_get_workspaceB
Get a single workspace by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic purpose. There is no mention of permissions, rate limits, response details, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description lacks context about what the response includes and any prerequisites. Given no output schema, the description should compensate but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no meaning beyond the schema's 'Numeric workspace ID' for the workspace_id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('workspace'), and the identification method ('by ID'). It distinguishes from siblings like toggl_list_workspaces and toggl_get_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., when to use list_workspaces instead). The description lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_list_projectsB
List all projects in a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID |
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 'list all projects' without mentioning pagination, rate limits, permissions, or whether it returns only active projects. This lack of detail reduces 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 a single, clear sentence with no extraneous words. It efficiently communicates the tool's core purpose without any fluff, earning top marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description fails to specify what the response contains (e.g., list of project objects with fields). This omission leaves the agent uncertain about the return format, making the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of workspace_id as 'Numeric workspace ID'. The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all projects in a workspace' clearly specifies the verb (list), the resource (projects), and the scope (in a workspace). It effectively distinguishes from sibling tools like toggl_get_project (single project) and toggl_create_project (create), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs all projects in a workspace, but it does not provide explicit guidance on when to use this tool versus alternatives like toggl_get_project or toggl_list_workspaces. No exclusion criteria or usage contexts are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_list_time_entriesC
List time entries with optional date filtering. Supports querying entries by date range.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | UNIX timestamp - get entries modified since this date | |
| before | No | ISO date - get entries with start time before this | |
| start_date | No | ISO date - entries starting from this date | |
| end_date | No | ISO date - entries up to this date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits like pagination, scope (workspace?), or rate limits. It only mentions date filtering, missing critical operational 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?
Two short sentences, front-loaded with purpose. Every part is relevant and no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks description of return format, pagination, error handling, or workspace context. For a list tool with no output schema and optional parameters, the description is too minimal to be fully actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described (e.g., 'since' as UNIX timestamp, 'before' as ISO date). The description adds 'date filtering' as a summary but no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'time entries', with optional date filtering. It distinguishes from sibling create/delete/update tools, though does not differentiate from other list tools like toggl_list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no when-not-to or prerequisites. The description only states what it does, not context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_list_workspacesA
List all workspaces accessible to the user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as authorization requirements, rate limits, or side effects. The read-only nature is implied by 'list' but not explicitly stated, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point with no unnecessary words. It effectively communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters and no output schema, the description is largely adequate. It covers what the tool does, though it could mention that no output schema is available and hint at the returned information (e.g., workspace names and IDs).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params), and the schema coverage is 100% trivially. The description adds value by specifying the scope 'all workspaces accessible to the user', which clarifies the return set beyond the empty 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 the resource 'workspaces', specifying 'all workspaces accessible to the user'. It distinguishes from siblings like toggl_get_workspace (single) and toggl_list_projects (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (list all workspaces for the user) but provides no explicit guidance on when to use this tool versus alternatives such as toggl_get_workspace, or any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_stop_time_entryB
Stop a running time entry.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| time_entry_id | Yes | Numeric time entry ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states the action. Does not disclose behavior if the entry is already stopped or not running, nor any side effects or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words, but could be slightly more informative while remaining concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stop action with two required numeric params and no output schema, the description is adequate but could clarify that the time entry must be running.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the parameters as numeric IDs. The description adds no extra meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stop a running time entry' clearly specifies the action (stop) and the resource (running time entry), distinguishing it from creation, deletion, or update 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?
No guidance on when to use this tool versus alternatives, such as when to stop vs delete a time entry. Lacks context about prerequisites (e.g., entry must be running).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggl_update_time_entryB
Update an existing time entry. You can modify the description, project assignment, start/stop times, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Numeric workspace ID | |
| time_entry_id | Yes | Numeric time entry ID | |
| description | No | New description | |
| project_id | No | New project ID (null to unassign) | |
| billable | No | ||
| tags | No | ||
| start | No | New start time in ISO 8601 format | |
| stop | No | New stop time in ISO 8601 format | |
| duration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not disclose behavioral traits such as idempotency, consequences of updating start/stop/duration, or required permissions. The description only says 'modify' without detailing side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the core purpose. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description is too brief. It does not explain how parameters interact (e.g., start/stop vs duration), whether billable and tags are optional, or what the response looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema description coverage, the baseline is lowered. The description merely lists examples (description, project assignment, start/stop times) without adding meaning beyond the schema. It does not explain the relationship between start, stop, and duration, or what 'project_id: null' means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Update an existing time entry' and lists modifiable fields like description, project assignment, start/stop times. This distinguishes it from sibling tools like create_time_entry, delete_time_entry, and stop_time_entry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need to modify a time entry), but it does not provide explicit guidance on when not to use it or how it compares to alternatives like toggl_stop_time_entry or toggl_create_time_entry.
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.
12 tool updates
v0.1.4- First observed
toggl_create_project - First observed
toggl_create_time_entry - First observed
toggl_delete_time_entry - First observed
toggl_get_current_time_entry - First observed
toggl_get_me - First observed
toggl_get_project - First observed
toggl_get_workspace - First observed
toggl_list_projects - First observed
toggl_list_time_entries - First observed
toggl_list_workspaces - First observed
toggl_stop_time_entry - First observed
toggl_update_time_entry
TDQS
Each tool has a distinct purpose (create, delete, update, list, etc.) on specific resources (project, time entry, workspace, user). No two tools overlap in functionality; clear separation of concerns.
All tools follow the consistent pattern 'toggl_verb_noun' with snake_case (e.g., toggl_create_project, toggl_list_time_entries). No mixed conventions or irregular naming.
12 tools cover the core operations for project and time entry management (CRUD for time entries, basic project and workspace queries). This is a well-scoped set for a time tracking server.
Time entry operations are comprehensive (create, read, update, delete, stop). However, project update and delete are missing, and there is no explicit 'start time entry' tool (though create might start one). Minor gaps but core workflows are covered.
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
Manage projects, tasks, time tracking, and team collaboration through natural language.
Manage Avaza projects, tasks, timesheets, expenses, invoices, and scheduling from AI assistants.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Clockify time tracking API to manage time entries, projects, tasks, and workspaces through natural language commands.355ISC
- AlicenseAqualityDmaintenanceEnables control of Toggl time tracking directly from LLMs like Claude or ChatGPT. Supports starting/stopping timers, viewing current and historical time entries, managing projects, and generating weekly summaries through natural language.8233MIT
- AlicenseNot gradedqualityCmaintenanceConnects AI assistants to the TrackingTime API v4 for managing projects, tasks, and team assignments. Users can start or stop timers, log manual time entries, and organize project workflows using natural language.11MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with the Toggl time tracking API to manage time entries, projects, and workspaces through natural language.22MIT
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/Kos-M/tempus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server