Skip to main content
Glama
klodr

mercury-invoicing-mcp

mercury_update_transaction

Update a transaction's internal note or category (no money movement).

Instructions

Update a transaction's internal note or category (no money movement).

USE WHEN: tagging a transaction with a category for bookkeeping, or attaching an internal memo. Send null to clear a field, omit the key to keep the current value.

DO NOT USE: to change the amount, counterparty, or status — those are immutable post-execution. Mercury endpoint is PATCH /transaction/{id} (no accountId in the path).

SIDE EFFECTS: overwrites the note / category on Mercury's side. Persistent. Audit log on Mercury records the change. No effect on the booked transaction itself or on the counterparty.

RETURNS: { id, note, categoryId, ... } — the updated transaction, with attachment URLs stripped (use mercury_get_transaction_attachment for a download URL).

Input Schema

NameRequiredDescriptionDefault
noteNoInternal note (send null to clear, omit to keep current)
categoryIdNoCategory ID (UUID, see mercury_list_categories). Send null to clear, omit to keep current.
transactionIdYesThe transaction ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.20.3
    • removedInput schema / properties / note / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / note / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Addedv0.15.6
  3. Removedv0.15.5
  4. Addedv0.15.4
  5. Removedv0.15.2
  6. Changed1 schema field changedv0.12.0
    • addedInput schema / additionalProperties
      Added value: +false
  7. First observedv0.9.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only cover destructiveHint=false and openWorldHint=true, so the description adds substantial value: persistent overwrite on Mercury's side, audit-log recording, no effect on the booked transaction or counterparty. Missing rate-limit/auth notes, but the mutation semantics are well disclosed and consistent with annotations.

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?

Labeled sections (USE WHEN / DO NOT USE / SIDE EFFECTS / RETURNS) with the core purpose front-loaded. Every sentence carries information an agent would otherwise have to guess.

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?

With no output schema, the description supplies the return shape, the attachment-URL stripping caveat with a pointer to the right sibling, the underlying endpoint, and immutability constraints. Nothing needed to call it correctly 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% and every parameter's description already documents the null-vs-omit semantics, so the description's 'Send `null` to clear a field, omit the key to keep the current value' largely restates structured data. It adds marginal framing but no new syntax or constraints beyond the schema.

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 ('Update a transaction's internal note or category') and immediately bounds the scope with '(no money movement)'. This cleanly distinguishes it from amount/counterparty/status mutations the agent might otherwise attempt.

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?

Explicit USE WHEN and DO NOT USE sections, including the alternative path for attachment downloads ('use mercury_get_transaction_attachment'). The exclusion of amount/counterparty/status changes is exactly the disambiguation an agent needs.

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