Skip to main content
Glama

Delete time entry

delete_time_entry
Destructive

Permanently deletes a logged time entry after explicit user confirmation and only for genuinely wrong entries; no undo. Correct mistakes with update instead when possible.

Instructions

Permanently delete a logged time entry.

Use only on explicit user instruction, and only for genuinely wrong entries. Deletion removes the booked hours from every cost report and from the work package's aggregated spent time, with no API-side undo.

Returns a small confirmation object once OpenProject accepts the deletion.

Pitfalls. If the entry is merely on the wrong day, has the wrong duration or the wrong activity, update_time_entry is the better answer — it keeps the audit trail. Deleting someone else's entry needs an administrative permission and otherwise fails with permission_denied. Entries inside a closed cost-reporting period cannot be deleted.

Cross-references: find the id with list_time_entries; correct instead of deleting with update_time_entry.

Input Schema

NameRequiredDescriptionDefault
confirmNoMust be true. Ask the user to confirm first — the API offers no undo. Calling with confirm=false returns a confirmation_required error rather than deleting anything.
time_entry_idYesId of the time entry to delete permanently. It comes from list_time_entries — confirm the id belongs to the entry you mean before calling, since ids are not human-readable.

Output Schema

NameRequiredDescriptionDefault
idYes
deletedYes
messageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.4.0
    • removedOutput schema / description
      Removed value: -"Outcome of ``delete_time_entry``."
    • removedOutput schema / properties / deleted / description
      Removed value: -"True once OpenProject accepted the deletion."
    • removedOutput schema / properties / id / description
      Removed value: -"Id of the time entry that was deleted."
    • removedOutput schema / properties / message / description
      Removed value: -"Human-readable confirmation."
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, so the baseline is met; the description goes further by spelling out the downstream effect (hours removed from every cost report and the work package's aggregated spent time) and the absence of any API-side undo. It also discloses the permission requirement and the resulting permission_denied failure, which annotations cannot express.

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-loaded with the operative verb and the caution, then grouped into pitfalls and cross-references, which is easy to scan. It loses a point for mild redundancy: the find-the-id and prefer-update guidance appears in both the pitfalls paragraph and the cross-references line.

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

Completeness5/5

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

For a two-parameter destructive mutation with an output schema and full annotation coverage, the description covers safety, prerequisites, failure modes and alternatives. Nothing an agent needs before calling is missing.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters including the confirm gate and the id-provenance note are fully documented in the schema. The description never mentions confirm directly and only echoes the list_time_entries id provenance already in the schema, so it adds little beyond the structured fields.

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?

States a specific verb and resource ('Permanently delete a logged time entry') with the permanence baked into the first sentence. Cross-references to update_time_entry and list_time_entries make the boundary against siblings explicit.

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 an explicit precondition ('only on explicit user instruction, and only for genuinely wrong entries') and names the correct alternative for the common near-miss case (wrong day/duration/activity → update_time_entry). Also states the case where it will fail outright (closed cost-reporting period).

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