Skip to main content
Glama

Finalise payslips

finalise_payslips
Destructive

Finalise payslips by id, so each posts its journal to the books. Sends no email and files no returns. Without confirm true it changes nothing and answers reason confirm-required with what it would post; ask the user, then call again with confirm true. A payslip dated in a locked period, or on a pay run that finalises itself on its pay date, is refused. A missing or another business's id refuses the whole batch.

Input Schema

NameRequiredDescriptionDefault
idsYes
confirmNoSend true only after the user has agreed to the change the refusal described.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint annotation by disclosing the dry-run/refusal contract ('answers reason confirm-required with what it would post'), the invariants that will refuse a call (locked period, self-finalising pay run), and batch atomicity ('A missing or another business's id refuses the whole batch'). This is exactly the behavioural context needed for a mutating, journal-posting operation.

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, front-loaded with the effect and then the confirm protocol, with no filler. It is dense — the refusal conditions are packed into single clauses — but each sentence carries distinct operational information.

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 two-parameter destructive mutation with no output schema, the description covers effect, side effects avoided, confirmation flow, refusal conditions, and atomicity. Nothing an agent needs to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50% (ids is undocumented), and the description compensates by defining batch semantics for ids — all-or-nothing refusal on missing or cross-business ids — and by adding the confirm-required response contract beyond the schema's one-line note. It still doesn't state what an id is (payslip id) or whether duplicates/ordering matter.

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 ('Finalise payslips by id') plus the concrete consequence ('each posts its journal to the books'), which distinguishes it from save_payslip (drafting) and delete_payslips in the sibling list. An agent can tell what changes in the domain without opening the schema.

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 an explicit two-step protocol ('ask the user, then call again with confirm true') and scope exclusions ('Sends no email and files no returns'), so the agent knows this is not the tool that distributes pay slips. It doesn't compare against save_payslip/populate_payrun explicitly, so it falls short of a full 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