Skip to main content
Glama

Post Xero transaction

post_xero_transaction
Destructive

Post ONE FreedomOS transaction into Xero as Spend Money or Receive Money. Args are fo_transaction_id + xero_bank_account_id only — amount, date, merchant, and Xero expense/income code are loaded from the FO row and the account map. Use after suggest_xero_post when the row is approved in FreedomOS and its category is mapped: it then posts with no card, skips when Xero already holds a document for that bank line, and lands on the weekly digest with its undo (void). Does not mark the Xero document reconciled.

Routing: Post of one approved, mapped FO row into Xero — never invent the amount

[write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time. Call it on the first clear ask; the card is the yes — do not re-ask in chat.]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
companyIdYesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
fo_transaction_idYesFreedomOS transactions.id UUID from suggest_xero_post
xero_bank_account_idYesXero BANK AccountID UUID from list_xero_accounts

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?

Beyond the annotations (destructiveHint=true, idempotentHint=false), the description discloses specific side effects and behaviors: it 'posts with no card', 'skips when Xero already holds a document for that bank line', 'lands on the weekly digest with its undo (void)', and 'does not mark the Xero document reconciled'. This is substantial behavioral context that helps an agent anticipate consequences.

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?

The description is dense but front-loaded with the core action, then routing and side effects, then approval handling. Most sentences carry useful information; the approval bracket is verbose but operationally relevant. It is longer than strictly necessary, but for a destructive financial write tool the detail is justified.

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 destructive, non-idempotent financial write tool with no output schema, the description covers preconditions, side effects, idempotency-like skip behavior, undo availability, and approval expectations. An agent has enough context to decide when to call it and what to expect after the call.

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 coverage is 100%, so the baseline is 3, but the description adds valuable semantic context: it states that the only args are fo_transaction_id and xero_bank_account_id, and that amount, date, merchant, and Xero expense/income code are loaded automatically from the FO row and account map. This clarifies source and derivation beyond the raw schema field names.

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?

The description names the exact verb ('Post'), the specific resource ('ONE FreedomOS transaction into Xero'), and the two document forms ('Spend Money or Receive Money'). It also distinguishes this tool from the closely related suggest_xero_post by clarifying that posting happens after suggestion and only for approved, mapped rows.

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 explicit usage conditions: 'Use after suggest_xero_post when the row is approved in FreedomOS and its category is mapped' and reinforces the routing constraint 'Post of one approved, mapped FO row into Xero — never invent the amount'. It does not enumerate formal when-not-to-use cases or alternatives beyond suggest_xero_post, so it falls just 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