Skip to main content
Glama
tillbooks

tillbooks

Official

preview_opening_import

Read-only

Dry-run opening balance rows before posting: normalizes balances to Rappen, resolves accounts, and reports unmapped accounts and balance mismatches without writing.

Instructions

Dry-run already-parsed migration rows into an opening position without writing anything: normalises a signed balance column or a debit/credit pair into integer Rappen, resolves each account number against the chart, and reports the rows the chart does not know (unmapped) alongside the balance check. Takes rows as an array of column-value objects, NOT a CSV string: parsing the export into rows is the caller's step. It refuses the same things import_opening_balances refuses, including an account named twice, so a preview that comes back clean is not followed by a surprise rejection. This reports what the FILE says and whether its own two sides agree; it cannot tell you the file is the right one, so compare the per-account lines against the Beleg. It takes no idempotency key and can never post.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asOfNo
rowsYes
formatNo
mappingNo
referenceNo
workspaceIdYes
differenceAccountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

The annotations declare readOnlyHint=true, but the description goes further by stating 'without writing anything' and 'can never post.' It also discloses the normalization process, account resolution, reporting of unmapped rows, refusal of duplicate accounts, and the inability to verify file correctness—rich context beyond the annotation.

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 every sentence contributes: purpose, input format, validation behavior, limitation, and idempotency. It is front-loaded with the dry-run nature and avoids fluff, though it is slightly long.

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 complex tool with 7 parameters, a nested mapping object, and no output schema, the description covers the core behavior and input requirements, including what it reports (unmapped rows and balance check). It omits details on optional parameters and the exact output structure, but these are secondary to the tool's main use case.

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 0% schema description coverage, the description must compensate. It explains the rows parameter (array of column-value objects, not CSV) and touches on balance/debit/credit normalization, but does not explain asOf, format, reference, differenceAccount, or the mapping object's field semantics. It adds some value but leaves significant gaps.

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 clearly states the tool's purpose: a dry-run of migration rows into an opening position, with specific actions like normalizing balances and resolving account numbers. It distinguishes itself from import_opening_balances by being read-only and taking parsed rows, making it easy to differentiate from siblings.

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?

It explicitly names import_opening_balances as the sibling it mirrors and clarifies the input format (rows array, not CSV). It also provides a limitation (cannot tell if the file is correct) and advises comparing against the Beleg, giving clear when-to-use guidance.

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