Skip to main content
Glama

Tax summary for a wallet

get_tax_summary
Read-onlyIdempotent

Free. Per-venue realised gains and losses, fees, funding, liquidations, open positions and items needing review for one wallet and tax year (subaccounts included automatically), plus trading analytics (fee and funding drag, liquidation review, net after costs by market and month). For live wallets, report gives the event count, the full report's price for this caller, whether they already have access, and how to buy it.

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": "get_tax_summary"
  }
}

Input Schema

NameRequiredDescriptionDefault
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.
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
    • addedInput schema / properties / unlock_token
      Added value: +{
      +  "description": "Unlock token returned by buy_report (or the website after paying), for wallets bought without an API key",
      +  "type": "string"
      +}
  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. Changed1 schema field changed
    • 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.7/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent safety, and the description adds genuinely new behavior: the freemium gate, automatic subaccount inclusion, and exactly what a live wallet returns (event count, caller-specific price, access status, purchase instructions). It does not mention rate limits or what happens when coverage is incomplete, keeping it short of a 5.

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?

Front-loading 'Free.' before the paid path is the right ordering, and both sentences carry information. The middle clause is a long comma-and-parenthesis chain that is dense but not padded.

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?

No output schema exists, and the description compensates by describing report sections and, for live wallets, the exact response shape (event count, price, access, purchase path). It leaves out sample-mode behavior and the unlocked-report result path, which are the remaining gaps for a 7-parameter tool.

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 coverage is 100% with detailed per-parameter descriptions including tax-year defaults and CSV limits, so the schema does the heavy lifting. The description adds only the subaccount-inclusion note, which marginally informs trade_history_account. Baseline 3 is appropriate.

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?

Opens with a specific resource and enumerates its contents (realised gains/losses, fees, funding, liquidations, open positions, items needing review) plus analytics, scoped to one wallet and tax year. This clearly separates it from get_ledger_events (raw events) and export_tax_file (file output). The verb is implicit rather than stated, and the two-sentence length dilutes the core purpose slightly.

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 implied by 'Free' and by the paid-report upsell path, but the description never states when to pick this over get_ledger_events, export_tax_file, or create_verified_pnl. The buy_report relationship is only visible through the schema's unlock_token description, not the tool description itself.

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