Skip to main content
Glama

QuantWright

Check my own trades

compare_trades

Checks a trader's own trades against a run's rule, on the price history this server holds: for each trade, in their order, whether the rule would have taken it and, if not, why (already in a trade, no entry signal that day, no bar that day). Use it when the trader lists trades they made and asks which the rule took, instead of working it out by hand. Takes a run (run_id) and the trades, each {side, entry, exit?}; answers in words, never prices. It re-runs the run's code, so it counts as a run on the run's symbol.

Input Schema

NameRequiredDescriptionDefault
run_idNoA run_id run_backtest or run_held_out_test returned: the run whose code is checked against the trades.
tradesYesThe trader's own trades, in their order, each stamp exactly as the trader wrote it.
versionNo
study_idNoA study's id; with `version`, one of its runs.
time_zoneNoThe clock the trader says their times are on ("UTC+2", "New York", "Europe/Prague"). Left out: the clock the run's trade list is on (ET for stocks and ETFs, UTC otherwise).

Output Schema

NameRequiredDescriptionDefault
noteNo
clockNoOn bars shorter than a day: the clock every time of the answer is on (your time_zone as you stated it, else ET for stocks and ETFs, UTC otherwise).
countsNo
marketNo
reasonNo
run_idNo
statusYes
tradesNo
messageNo
summaryNo
versionNo
study_idNo
runs_left_todayNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

The annotations declare readOnlyHint=false and idempotentHint=false, and the description explains why: "It re-runs the run's code, so it counts as a run on the run's symbol." That is exactly the context an agent needs to avoid treating this as a free lookup. It also discloses the response shape ("answers in words, never prices") and enumerates the non-taken reasons, adding real value beyond the structured fields.

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 the core verb and scope, then usage, then the operational caveat, in a compact block with no filler sentences. The parenthesis listing rejection reasons is dense but earns its space; slightly more compression of the input restatement would make it a 5.

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 not be explained, and the write-like side effect is reconciled against the annotations. The description is complete enough to call the tool correctly for the common case, with the only real gap being the undocumented optional parameters (version, study_id, time_zone) that select which run is checked.

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 80%, so the baseline is 3, and the description does describe the two core inputs (run_id plus trades of {side, entry, exit?}). However it is silent on version, study_id and time_zone — the very parameters that let a caller pin a different run or reinterpret the timestamps — leaving that entirely to the schema.

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 — checks a trader's own trades against a run's rule on this server's price history — and immediately clarifies the output unit (per trade, in their order, taken or not and why). That framing separates it cleanly from run_backtest (which produces runs) and get_result (which retrieves them), so an agent can route without opening any 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 an explicit trigger: "Use it when the trader lists trades they made and asks which the rule took, instead of working it out by hand." That names the situation and the alternative behaviour to avoid. It stops short of naming a sibling tool to use instead when the trader has no existing run, so it is not a full when/when-not pair.

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