Skip to main content
Glama
freeagent-mcp-server

freeagent-mcp-server

by samaxbytez

freeagent_update_invoice

Destructive

Modify an existing FreeAgent invoice's date, reference, currency, comments, or payment terms to keep billing details accurate.

Instructions

Update an existing invoice in FreeAgent

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": {
      "invoice_id": "<invoice_id>"
    },
    "name": "freeagent_update_invoice"
  }
}

Input Schema

NameRequiredDescriptionDefault
commentsNoComments to appear on the invoice
currencyNoCurrency code
dated_onNoInvoice date (YYYY-MM-DD)
referenceNoInvoice reference
invoice_idYesThe invoice ID
payment_terms_in_daysNoPayment terms in days

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.0
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv1.3.0

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the agent knows this mutates data; the description adds nothing on top of that. For a destructive mutation it should disclose whether the update is partial or a full replace, whether omitted fields are cleared, whether line items are preserved, and whether draft status is required.

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

Conciseness3/5

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

The single sentence is front-loaded and free of filler, which is good. But at seven words it is terse to the point of under-specification rather than genuinely concise, so it does not earn a high score despite having no wasted wording.

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

Completeness2/5

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

For a six-parameter destructive mutation with no output schema and no annotations explaining update semantics, the description is far too thin. An agent cannot tell whether the call is a PATCH-style partial edit, whether the response returns the updated invoice, or how it interacts with the invoice status tools.

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%, so every parameter is already documented in the schema, and the description adds no syntax or behavioral detail beyond it. Under the stated rule, full schema coverage with no added param meaning lands at the baseline of 3.

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

Purpose3/5

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

The description names a specific verb and resource ("Update an existing invoice") and the target system, so the basic action is unambiguous. However, it does nothing to distinguish this from the many sibling invoice operations (mark_invoice_as_sent, mark_invoice_as_draft, mark_invoice_as_cancelled, delete_invoice), leaving the agent to infer that this is the general field-editing operation.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: no statement that this is for editing field values versus changing invoice status, which is the exact ambiguity created by the mark_* siblings. No prerequisites (draft-only? permission level?) or exclusions are given.

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

Deploy Server

Other Tools