Skip to main content
Glama

Mark time entries as billed

entry_mark_billed

Close the loop after an invoice is issued: stamp the tracked hours that went on it with the invoice number, so report and invoice_summary stop offering them and the same hours are never billed twice.

Input Schema

NameRequiredDescriptionDefault
toNoISO date/time end of the billed period, used with project
idsNoExact entry ids, normally the entry_ids invoice_summary returned. Pass either ids or project plus from and to. Entries already billed are left alone and listed back to you.
fromNoISO date/time start of the billed period, used with project
projectNoProject or client, used with from and to instead of ids; every billable entry in that range is stamped.
billed_atNoISO timestamp of the stamp, defaults to now
invoice_numberYesThe invoice these hours were put on, e.g. INV-2026-0001

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds real downstream context the annotations cannot: stamped hours stop appearing in report and invoice_summary and are protected from double billing. It omits permission requirements and what happens to entries that do not match the filter. Minor tension: the 'never billed twice' framing reads as idempotent while idempotentHint=false, though the schema's 'entries already billed are left alone' resolves this as scoped-skip rather than a true contradiction.

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

Conciseness5/5

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

One sentence, front-loaded with the trigger condition and ending on the business guarantee. No restatement of the title or filler clauses.

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?

A mutation tool with full annotation and schema coverage and no output schema; the description supplies the workflow framing and side effects an agent needs to choose and sequence it. It could still say whether permissions are required or how partial matches are reported, but nothing essential 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 description coverage is 100%, including the ids-vs-project+from+to disjunction and already-billed handling, so the schema does all parameter work. The description adds no syntax, format, or selector guidance beyond it; baseline 3 applies.

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

Purpose5/5

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

States a specific action (stamp tracked hours) on a specific resource (time entries) and ties it to a lifecycle moment (after an invoice is issued). The mention of report and invoice_summary makes clear how it differs from read-oriented siblings like entry_list, report, and invoice_summary.

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

Usage Guidelines4/5

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

Explicitly says when to use it: after an invoice has been issued, to close the loop on those hours. It does not state exclusions (e.g., use entry_edit to correct hours, or entry_log to add new ones), so the agent must infer that this tool only stamps, never adjusts.

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.