Skip to main content
Glama

Export a tax file

export_tax_file
Idempotent

Koinly universal CSV, Crypto Tax Calculator advanced CSV, Cryptact custom file (JST, priced in yen by Cryptact), plain-text accountant summary, or the audit pack (audit = JSON with every figure tied to its transaction hash, a rules version and a data fingerprint; auditpdf = the printable PDF). Live wallets need paid access (API key or paid report). Large files are cut short with a download link.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "address": "<address>"
    },
    "name": "export_tax_file"
  }
}

Input Schema

NameRequiredDescriptionDefault
formatNokoinly
sampleNoReturn deterministic sample data instead of reading Hyperliquid
addressYesPublic Hyperliquid wallet address
tax_yearNoTax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26; JP-2026 = Japan · 2026; JP-2025 = Japan · 2025; ES-2026 = Spain · 2026; ES-2025 = Spain · 2025. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027, JP JP-2026, ES ES-2026.
save_walletNoWith a Trader or Accountant plan API key: add this wallet to the plan if it is not on it yet (uses one of the plan's 10 wallets or a client seat). Without it, a wallet not on the plan gets the preview and a note.
jurisdictionNoUsed when tax_year is not given. AU = 1 Jul–30 Jun; US, CA, JP and ES = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 MarAU
unlock_tokenNoUnlock token returned by buy_report (or the website after paying), for wallets bought without an API key
trade_history_csvNoOptional: the text of a trade history CSV the user exported from Hyperliquid (Trade History, Export as CSV). Hyperliquid's API serves only about a wallet's most recent 10,000 fills, so for very active wallets this adds the older trades; only trades the API didn't return are added. Nothing is stored.
trade_history_accountNoOptional: the subaccount address the trade history file belongs to (from coverage.subaccounts). Omit for the main account's file.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / trade_history_account
      Added value: +{
      +  "description": "Optional: the subaccount address the trade history file belongs to (from coverage.subaccounts). Omit for the main account's file.",
      +  "pattern": "^0x[0-9a-fA-F]{40}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / trade_history_csv
      Added value: +{
      +  "description": "Optional: the text of a trade history CSV the user exported from Hyperliquid (Trade History, Export as CSV). Hyperliquid's API serves only about a wallet's most recent 10,000 fills, so for very active wallets this adds the older trades; only trades the API didn't return are added. Nothing is stored.",
      +  "maxLength": 4000000,
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "koinly",
      -  "ctc",
      -  "summary",
      -  "audit",
      -  "auditpdf"
      -]New value: +[
      +  "koinly",
      +  "ctc",
      +  "cryptact",
      +  "summary",
      +  "audit",
      +  "auditpdf"
      +]
  3. Changed4 schema fields changed
    • changedInput schema / properties / jurisdiction / description
      Previous value: -"Used when tax_year is not given. AU = 1 Jul–30 Jun; US and CA = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 Mar"New value: +"Used when tax_year is not given. AU = 1 Jul–30 Jun; US, CA, JP and ES = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 Mar"
    • changedInput schema / properties / jurisdiction / enum
      Previous value: -[
      -  "AU",
      -  "US",
      -  "UK",
      -  "CA",
      -  "NZ"
      -]New value: +[
      +  "AU",
      +  "US",
      +  "UK",
      +  "CA",
      +  "NZ",
      +  "JP",
      +  "ES"
      +]
    • changedInput schema / properties / tax_year / description
      Previous value: -"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027."New value: +"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26; JP-2026 = Japan · 2026; JP-2025 = Japan · 2025; ES-2026 = Spain · 2026; ES-2025 = Spain · 2025. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027, JP JP-2026, ES ES-2026."
    • changedInput schema / properties / tax_year / enum
      Previous value: -[
      -  "AU-2027",
      -  "AU-2026",
      -  "US-2026",
      -  "US-2025",
      -  "UK-2027",
      -  "UK-2026",
      -  "CA-2026",
      -  "CA-2025",
      -  "NZ-2027",
      -  "NZ-2026"
      -]New value: +[
      +  "AU-2027",
      +  "AU-2026",
      +  "US-2026",
      +  "US-2025",
      +  "UK-2027",
      +  "UK-2026",
      +  "CA-2026",
      +  "CA-2025",
      +  "NZ-2027",
      +  "NZ-2026",
      +  "JP-2026",
      +  "JP-2025",
      +  "ES-2026",
      +  "ES-2025"
      +]
  4. Changed2 schema fields changed
    • addedInput schema / properties / save_wallet
      Added value: +{
      +  "default": false,
      +  "description": "With a Trader or Accountant plan API key: add this wallet to the plan if it is not on it yet (uses one of the plan's 10 wallets or a client seat). Without it, a wallet not on the plan gets the preview and a note.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / tax_year / description
      Previous value: -"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults to the year being filed now."New value: +"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults by jurisdiction: AU AU-2026, US US-2026, UK UK-2026, CA CA-2026, NZ NZ-2027."
  5. Changed4 schema fields changed
    • changedInput schema / properties / jurisdiction / description
      Previous value: -"Used when tax_year is not given. AU = financial year 1 Jul–30 Jun; US = calendar year"New value: +"Used when tax_year is not given. AU = 1 Jul–30 Jun; US and CA = calendar year; UK = 6 Apr–5 Apr; NZ = 1 Apr–31 Mar"
    • changedInput schema / properties / jurisdiction / enum
      Previous value: -[
      -  "AU",
      -  "US"
      -]New value: +[
      +  "AU",
      +  "US",
      +  "UK",
      +  "CA",
      +  "NZ"
      +]
    • changedInput schema / properties / tax_year / description
      Previous value: -"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025. Defaults to the year being filed now."New value: +"Tax year. AU-2027 = Australia · FY 2026–27; AU-2026 = Australia · FY 2025–26; US-2026 = United States · 2026; US-2025 = United States · 2025; UK-2027 = United Kingdom · 2026–27; UK-2026 = United Kingdom · 2025–26; CA-2026 = Canada · 2026; CA-2025 = Canada · 2025; NZ-2027 = New Zealand · 2026–27; NZ-2026 = New Zealand · 2025–26. Defaults to the year being filed now."
    • changedInput schema / properties / tax_year / enum
      Previous value: -[
      -  "AU-2027",
      -  "AU-2026",
      -  "US-2026",
      -  "US-2025"
      -]New value: +[
      +  "AU-2027",
      +  "AU-2026",
      +  "US-2026",
      +  "US-2025",
      +  "UK-2027",
      +  "UK-2026",
      +  "CA-2026",
      +  "CA-2025",
      +  "NZ-2027",
      +  "NZ-2026"
      +]
  6. 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, idempotentHint=true and destructiveHint=false, so the safety bar is already lowered; the description adds genuinely non-obvious behavior beyond them: paid-access gating for live wallets, large exports being truncated with a download link, and what the 'audit' payload contains. It does not reconcile readOnlyHint=false (i.e., that save_wallet/plan mutations can occur), which is the one gap that matters for a non-read-only tool.

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?

Dense but efficient: formats first (front-loaded with the decision-relevant options), then the access/truncation caveats. The nested parenthetical explaining audit/auditpdf is awkward but every clause conveys information an agent would otherwise have to guess; no filler sentences.

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?

Nine parameters, a rich schema and no output schema, so the description carries the return-value burden — and it largely meets it by describing what each format contains and how oversized results are delivered. What it never states is the actual call outcome shape for a normal export (inline file text, a URL, or a job handle), which is the remaining ambiguity for an export tool.

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 89%, so the baseline is 3, and the description exceeds it by explaining what enum values mean in substance — Cryptact is JST/yen-priced, audit is JSON with every figure tied to its transaction hash plus rules version and data fingerprint, auditpdf is the printable form. It adds no information about sample, unlock_token, or the trade-history pair, but those are already documented in the schema.

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?

The description names the concrete export formats (Koinly CSV, CTC advanced CSV, Cryptact, summary, audit JSON/PDF), so an agent can tell precisely what the tool produces, and the tool name/title supply the verb+resource. It reads as an enumeration of outputs rather than a leading purpose statement, and it never explicitly contrasts itself with get_tax_summary or create_verified_pnl.

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?

It gives one real eligibility rule — 'Live wallets need paid access (API key or paid report)' — which tells the agent when the call will succeed versus return a preview. But it offers no routing guidance among the siblings (get_tax_summary, create_verified_pnl, buy_report, explain_tax_treatment), so choosing this tool over them is left to inference.

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