Skip to main content
Glama

Beancount.io

Sync Bank Transactions

syncBankTransactions

Pull new transactions from a linked bank into staging; nothing is written to the ledger. dry_run reports what would be pulled.

Input Schema

NameRequiredDescriptionDefault
dryRunNoAlias of dry_run, as REST and GraphQL spell it.
itemIdNoThe linked bank's id.
ledgerNoTarget ledger as owner/name. Required for an unpinned credential; defaults to the credential's ledger restriction.
dry_runNoValidate and report what would change, without changing anything.
item_idNoAlias of itemId.

Output Schema

NameRequiredDescriptionDefault
okYes
errorNo
resultNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / dryRun
      Added value: +{
      +  "description": "Alias of dry_run, as REST and GraphQL spell it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / itemId
      Added value: +{
      +  "description": "The linked bank's id.",
      +  "type": "string"
      +}
    • changedInput schema / properties / item_id / description
      Previous value: -"The linked bank's id (item_id)."New value: +"Alias of itemId."
    • removedInput schema / required
      Removed value: -[
      -  "item_id"
      -]
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, so the tool clearly writes something; the description usefully resolves the ambiguity by saying the write lands in staging and 'nothing is written to the ledger' — important context an agent cannot get from the hints alone. It adds the dry_run reporting behavior as well. It leaves idempotentHint=false unexplained (what happens on a repeat sync, duplicate staging rows?) and says nothing about the external bank call implied by openWorldHint.

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?

Two clauses, both front-loaded: the action and destination come first, then the ledger-safety assurance and the dry_run note. Nothing is redundant and no sentence could be dropped without losing information.

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?

An output schema exists, so return values need no explanation, and the description covers the one thing an agent must not get wrong: this is a staging write, not a ledger mutation. What's missing is what happens to already-staged transactions across repeated syncs and whether the ledger parameter is truly optional in practice, which matters given five optional parameters.

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 description coverage is 100% and all five parameters, including the dry_run/dryRun and itemId/item_id aliases, are already documented in the schema. The description's only added parameter meaning is that dry_run 'reports what would be pulled', which largely restates the schema text. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('Pull new transactions from a linked bank') plus the destination ('into staging'), which lets an agent separate it from ledger-writing siblings like importStagedBankTransactions or insertReceiptTransaction. It stops short of naming the downstream sibling explicitly, so the differentiation is inferential rather than declared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the staging/ledger distinction; there is no explicit 'use this before X' or 'do not call when Y' guidance. An agent must infer from the sibling list that importStagedBankTransactions is the follow-up step and that this tool is the entry point of the pipeline. No prerequisites (linked credential, bank connection existence) are stated.

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.