Skip to main content
Glama

List journal trades

journal_list_trades
Read-only

Trade summaries — key, account, symbol, asset class, direction, status (open/win/loss/breakeven), open and close times, quantity and open quantity, average entry/exit, gross and net P&L, fees, fill count, duration, realized R, tags, rating, reviewed flag, hasNotes — newest-opened first by default. sort orders by any of openedAt, closedAt, netPnl, grossPnl, durationMs, quantity, symbol or rating (names match the response fields); order is desc unless set, except symbol which defaults to asc. Trades lacking the sort value (open trades for closedAt/durationMs, unrated for rating) come last in either order; netPnl is after fees, grossPnl before. Filter by account ids, open-day window (from/to are inclusive YYYY-MM-DD day keys in the journal timezone, applied to the trade's open day; open positions are always listed), symbol, direction, status or one exact tag. Keyset-paginated: pass nextCursor back as cursor with the same sort, order and filters. Examples: biggest winners this month = from/to + sort netPnl; worst by gross = sort grossPnl, order asc, status loss; longest holds = sort durationMs. Summaries carry no fills or note text: journal_get_trade with the key has those. Requires signing in with a LuxAlgo account (OAuth).

Input Schema

NameRequiredDescriptionDefault
toNoInclusive end day (YYYY-MM-DD, journal timezone). Overrides `range`.
tagNoTrades carrying exactly this tag (see journal_list_tags).
fromNoInclusive start day (YYYY-MM-DD, journal timezone). Overrides `range`.
sortNoField to order by; default openedAt. Trades without a value for it come last in either order.
limitNoPage size, default 25.
orderNoDefault desc (largest / latest first); symbol defaults to asc (A→Z).
cursorNo`nextCursor` from the previous page; keep every other argument identical.
statusNo
symbolNoOne symbol, e.g. 'AAPL' (case-insensitive).
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
accountsNoJournal account ids to scope to (from journal_list_accounts). Omit for every account, archived ones included. Unknown ids are rejected.
directionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true/destructiveHint=false, and the description adds substantial non-obvious behavior: keyset pagination requires identical args on the next call, trades missing the sort value come last in either order, netPnl is after fees vs grossPnl before, open positions are always listed despite the day window, and OAuth sign-in is required.

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-loaded with scope and return shape, then sorting, filtering, pagination and examples in a logical order; every sentence carries information. It is dense and long, with a long field enumeration, which costs a little readability, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the summary fields and explicitly stating what is absent (fills, note text). Auth, pagination contract, filter semantics and defaults are all covered for a 12-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 83%, yet the description still adds real meaning beyond the schema: sort names match response field names, symbol is the exception that defaults to asc, tie-break ordering, day keys are journal-timezone open-day keys, and tag matching is exact. The `cursor` must be paired with unchanged sort/order/filters.

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+resource (list trade summaries) and immediately enumerates the returned fields, setting scope precisely. It explicitly distinguishes itself from journal_get_trade ("summaries carry no fills or note text") so an agent can tell the two apart without opening either schema.

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?

Provides explicit when-to-use routing ("journal_get_trade with the `key` has those"), names sibling tools for preconditions (journal_list_tags, journal_list_accounts), and gives four concrete query recipes (biggest winners this month, worst by gross, longest holds). Nothing 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.