Skip to main content
Glama

Import transactions from a Wave Data Export

wave_import_ledger
DestructiveIdempotent

Import Wave's Data Export ZIP or accounting CSV to store the full transaction journal locally for transaction listing and date-range reports when the public API cannot read transactions.

Instructions

Load the full transaction journal from Wave's Data Export so transactions can be listed and date-range reports run. Wave's public API cannot read transactions; this is the supported way to get them. Get the file: Wave → Settings → Data Export → Accounting (CSV) → Export; Wave emails a download link (valid 24 hours). Pass the path of the downloaded .zip (or the accounting .csv inside it) on the machine running this server. Replaces any earlier import for the business. Nothing is sent to Wave; the ledger is stored locally (mode 600).

Input Schema

NameRequiredDescriptionDefault
pathYesAbsolute path to the Data Export .zip or its accounting .csv
businessIdNoBusiness ID; defaults to the one wave_get_context reports

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: it discloses that an earlier import for the business is replaced (concretely explaining destructiveHint=true), that nothing is sent to Wave (reinforcing openWorldHint=false and clarifying the network/auth posture), and that the ledger is stored locally with mode 600 permissions. These are exactly the side-effect and data-safety facts an agent needs before invoking a destructive write.

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?

Five dense, front-loaded sentences: what it does, why it exists, how to get the file, what to pass, and what the side effects are. No filler, and the destructive caveat lands before an agent would act.

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 two-parameter destructive import with no output schema, this covers acquisition, argument form, scope, and side effects. The only gap is the result: nothing about what is reported back (transaction count, validation failures on a malformed CSV), which an agent would want after a replace-the-ledger operation.

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; the description earns above that by clarifying that the path must resolve on the machine running the server and that either the .zip or the inner accounting .csv is acceptable. It says nothing about businessId, but the schema already documents that default fully.

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 ("Load the full transaction journal from Wave's Data Export") plus the downstream purpose (listing and date-range reports), and explains why this path exists at all ("Wave's public API cannot read transactions"), which cleanly separates it from wave_list_transactions and wave_list_ledger_transactions. An agent can pick this 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 explicit trigger conditions and even operational steps to obtain the input (Settings → Data Export → Accounting CSV → emailed 24h link). The routing statement that this is the supported ingestion path is a strong when-to-use signal, but there is no explicit "when not to use" — e.g. no note that manually created transactions already live locally and don't require an import.

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