Skip to main content
Glama

Run a backtest report

report
Read-only

Run a backtest and show its results. Supply strategyExplanation in plain terms for the widget. In your reply, explain the rule, always show Return vs. SPY (summary.returnVsSpyPct in percentage points, or Unavailable), and give one takeaway or limit supported by the report. Choose any additional cards using stats. Use scoreSeries for a separate score panel. Use chartSeries to select named report series and set their legend labels, line or bar types, colors, and line patterns. Keep the interpretation about this historical test. To publish this exact result later, pass its reportId to save_strategy after the user asks to save it to the website.

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": {
      "run": "<run>"
    },
    "name": "report"
  }
}

Input Schema

NameRequiredDescriptionDefault
runYes
statsNo
chartSeriesNoAdditional price-panel plots. Reference named engine report series. Set a legend label, line or bar type, line pattern, and optional hex color.
scoreSeriesNoNamed report series to draw in the separate score panel.
strategyExplanationNoIn 1 to 3 plain sentences, explain what the strategy trades, what triggers buys and sells or rebalancing, and one key assumption when relevant. Use the run rules. Leave historical results for the report.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

The readOnlyHint annotation already tells the agent this is a non-mutating operation, and the description is consistent with that. It adds genuinely useful behavior beyond annotations: results are keyed by a reportId that can later be published through save_strategy, and it warns to keep the interpretation about the historical test rather than implying live applicability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the sentences are individually useful, but the description blends tool mechanics with agent output-formatting directives ("In your reply, explain the rule... give one takeaway") in a dense run-on sequence. It is longer than it needs to be for a single-purpose tool and reads more like a checklist than a structured definition.

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

Completeness3/5

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

With a very large nested `run` schema, no output schema, and only 60% parameter coverage, the description carries a heavy burden. It covers the presentation parameters and the reportId handoff, but leaves the agent to reverse-engineer the entire strategy DSL from the schema alone and never summarizes what the report body contains beyond returnVsSpyPct.

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 description coverage is only 60%, so the description needs to compensate, and it does well for three of five params: strategyExplanation's plain-language intent, stats as selectable extra cards, scoreSeries as the separate score panel, and chartSeries as named series with legend/type/color/pattern. However, the largest and most complex parameter, `run`, gets only "the rule" — none of its tickers/date-range/simulation structure is illuminated, and the return-value hint (summary.returnVsSpyPct in percentage points) is confined to one field.

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?

"Run a backtest and show its results" names a specific verb and resource, and the rest of the description clarifies the deliverable (a report with stats cards, chart series, and a score panel). It does not distinguish itself from the sibling `simulate`, which an agent could plausibly confuse it with, so sibling differentiation is the missing piece.

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 concrete operational guidance: supply strategyExplanation in plain terms, show Return vs. SPY, pick extra cards via `stats`, use `chartSeries`/`scoreSeries` for panels, and hand the `reportId` to save_strategy only when the user asks to save. It stops short of explicit when-not-to-use or a stated alternative to `simulate`.

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