Skip to main content
Glama

InvoiceParser Pro

Assign an invoice to a client

assign_invoice_client
DestructiveIdempotent

Apply only the exact change returned by preview_assign_invoice_client, after the user confirms that preview. Accepts its confirmation_token only; changed or expired records require a new preview. Prepare moving an invoice's client assignment to an active client in the same workspace. Requires confirmation; saved financial data is not changed.

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": {
      "input": "<input>"
    },
    "name": "assign_invoice_client"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, so the mutation profile is known. The description adds genuinely non-structured behavior: token single-use tie to a specific preview state and the expiry/change rule. However, 'saved financial data is not changed' sits awkwardly against destructiveHint=true and leaves unclear what precisely is overwritten or whether the assignment is reversible.

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 critical constraint is front-loaded, which is good, but the token sentence and 'Requires confirmation' overlap, and the 'Prepare moving an invoice's client assignment...' sentence reads as a leftover purpose statement inserted mid-paragraph. Four sentences where three tighter ones would do.

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?

For a confirmation-gated mutation with no output schema, the description covers prerequisites, token lifecycle, scope (active client, same workspace) and a note on what does not change. It still omits what the call returns on success and what happens if the underlying invoice changed before the token is consumed, which an agent would want to know.

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?

With only one parameter and no meaningful schema description coverage at the top level, the description must carry the weight. It does clarify that the token is the sole accepted input and that it is invalidated by changed or expired records, but it doesn't say how to obtain or recognize a valid token beyond pointing at the preview — the nested schema field does the rest.

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

Purpose4/5

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

The opening sentence states a specific action (apply the exact change) plus the resource (invoice client assignment) and names the sibling that produces it: preview_assign_invoice_client. The later sentence 'Prepare moving an invoice's client assignment...' muddies things, since 'prepare' sounds like the preview rather than the apply, but the first sentence resolves the ambiguity.

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?

It gives an explicit prerequisite chain: call preview_assign_invoice_client, get user confirmation of the displayed changes, then call this with only that token; expired or changed records require a fresh preview. It also constrains the target to an active client in the same workspace. No sibling alternatives beyond the preview are discussed, which keeps it short of a 5.

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