Skip to main content
Glama

Log a time entry

time_entries_create
Destructive

Log a completed time entry for the calling user (entries for other members are not supported). Needs start_time (epoch ms, within the window the server enforces) and duration_minutes (0-10080). billable defaults to true. A billable entry resolves the workspace's own rate (project, then member, then workspace default) when hourly_rate is omitted; a rate other than the resolved one needs the billable-rates edit permission. A non-billable entry always has rate 0. total_amount is computed (duration / 60 x hourly_rate when billable, else 0). A repeat call with the same idempotency_key returns the first entry (deduped: true). To change an entry use time_entries_update; to find entries, time_entries_search.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "start_time": "<start_time>",
      "duration_minutes": "<duration_minutes>"
    },
    "name": "time_entries_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
task_idNoTask the time is for. Use the `id` that tasks_search returns.
billableNoDefaults to true.
currencyNoCurrency code.
end_timeNoEnd, epoch ms.
client_idNoClient the time is for. Use the `id` that clients_search returns.
project_idNoProject the time is for. Use the `id` that projects_search returns.
start_timeYesStart, epoch ms (within the window the server enforces).
descriptionNoWhat was worked on.
hourly_rateNoOmit to use the workspace's resolved rate; a different rate needs the billable-rates edit permission.
idempotency_keyNoOptional. Repeat a call with the same key to avoid doing it twice.
duration_minutesYesDuration in minutes (0-10080).

Output Schema

NameRequiredDescriptionDefault
entryYes
dedupedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / client_id / description
      Previous value: -"Client the time is for."New value: +"Client the time is for. Use the `id` that clients_search returns."
    • changedInput schema / properties / project_id / description
      Previous value: -"Project the time is for."New value: +"Project the time is for. Use the `id` that projects_search returns."
    • changedInput schema / properties / task_id / description
      Previous value: -"Task the time is for."New value: +"Task the time is for. Use the `id` that tasks_search returns."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Adds substantial behavior beyond annotations: rate resolution order (project, then member, then workspace default), the permission needed for a non-resolved rate, the total_amount formula, and dedupe via idempotency_key. It does not address the destructiveHint=true annotation — there is no mention of reversibility or how a mistakenly logged entry is removed, which is the one meaningful gap.

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

Conciseness4/5

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

Front-loads the scope and required inputs, then layers optional behavior. It is dense but nearly every clause carries distinct information; the rate-resolution sentence is long but earns its length.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description covers defaults, derived fields, permissions and dedupe. Minor omissions remain: the 'window the server enforces' for start_time is referenced but never characterized, and no guidance on when end_time should be supplied alongside duration_minutes.

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

Parameters4/5

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

With 100% schema coverage the baseline is 3, and the description genuinely adds meaning the schema does not: the resolved-rate fallback chain, that `billable` defaults to true, that a non-billable entry forces rate 0, and that total_amount is derived rather than supplied.

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

Purpose5/5

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

Opens with a specific verb+resource ('Log a completed time entry') and immediately scopes it to the calling user, explicitly excluding entries for other members. It also names the sibling tools (time_entries_update, time_entries_search) so an agent can route without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use alternatives: 'To change an entry use time_entries_update; to find entries, time_entries_search' plus the negative constraint that other members' entries are unsupported. Nothing about routing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.