Skip to main content
Glama

Create invoice from work

create_invoice_from_work
Destructive

Creates a draft invoice from a project's unbilled work (same options as the preview): the finished billable hours and billable expenses become lines and are tied to the invoice, so they cannot be invoiced twice or edited until it is voided. The draft is private: nothing is sent. Counts toward the free plan's 2 documents per month. Only the project owner. Needs confirm: true and amount equal to the total of the preview; without them the result is that preview.

Input Schema

NameRequiredDescriptionDefault
toNoOnly work up to this day, YYYY-MM-DD.
fromNoOnly work from this day on, YYYY-MM-DD.
notesNoUp to 4000 characters. Default: the profile's default notes.
termsNoUp to 4000 characters. Default: the profile's payment instructions.
amountNoThe document's total in the currency's main unit, repeated from the preview (e.g. 220 or "220.00"). Must equal the total or nothing is done.
toNameNoWho it is for. Default: the client's name.
boardIdYesThe project.
confirmNotrue performs the action. Without it (or with any value other than the boolean true) nothing changes and the result is a preview of the effects.
dueDateNoYYYY-MM-DD. Default: the profile's payment terms (invoice) or 30 days (estimate).
groupByNoHow the work becomes lines. Default task.
toEmailNo
toTaxIdNo
clientIdNoOne of the user's clients; its name, email, address, tax id and currency are copied onto the document.
currencyNoThree-letter code. Default: the client's, else the profile's.
discountNoA fixed amount off the whole document. An amount in the currency's main unit, e.g. 85 or "85.50" (not cents). null clears it.
taxLabelNoWhat the tax is called, up to 30 characters.
issueDateNoThe issue date. Default today, YYYY-MM-DD.
toAddressNo
expenseIdsNo
taxPercentNoTax as a percentage, e.g. 21 or "10,5". Default: the profile's.
includeTimeNo
taxableTimeNo
timeEntryIdsNo
includeExpensesNo
taxableExpensesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the downstream consequence that lines become tied to the invoice and 'cannot be invoiced twice or edited until it is voided', that the draft is private with 'nothing is sent', that it consumes a free-plan quota ('2 documents per month'), and the owner-only auth requirement. These are exactly the side-effect, auth, and rate-limit facts an agent needs before a destructive write.

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?

Five sentences, each carrying distinct information, with the core action front-loaded and the gating requirements placed where an agent will see them. Slightly dense, but nothing is padding or restated from the schema.

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 25-parameter destructive write with no output schema, the description covers the operation, its irreversibility window, the preview fallback, quota impact, and auth scope. The remaining parameter detail is legitimately delegated to the schema and the referenced preview tool.

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 64% across 25 parameters, so the schema already documents most of the surface. The description adds real meaning for confirm and amount (gating semantics, 'Must equal the total or nothing is done') and gestures at includeTime/includeExpenses via 'finished billable hours and billable expenses become lines', but leaves many parameters (timeEntryIds, expenseIds, from/to, groupBy) to the schema and the 'same options as the preview' hand-wave.

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 plus the source material ('Creates a draft invoice from a project's unbilled work'), which cleanly separates it from create_invoice, convert_estimate_to_invoice, and preview_invoice_from_work. The parenthetical 'same options as the preview' explicitly anchors it to its sibling.

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?

Gives a hard prerequisite ('Needs confirm: true and amount equal to the total of the preview') and states the fallback behavior when they are absent ('the result is that preview'), plus an ownership constraint ('Only the project owner'). It never names preview_invoice_from_work as the tool to call instead, so the alternative is implied rather than explicit.

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.

Resources