Skip to main content
Glama

Get a backtest result

get_backtest
Read-onlyIdempotent

Retrieve a previous backtest by run_id — the full record, including why it was rejected.

    Only runs in YOUR namespace are visible; a run_id belonging to someone else is simply not
    found. Args: run_id (the `twmd_bt_…` handle returned by run_backtest).
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
run_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cagrNo
hintNo
specNo
as_ofNo
costsNo
errorNo
fillsNo
queueNo
engineNo
periodNo
reasonNo
run_idNo
sharpeNo
statusNo
tradesNo
blockedNo
metricsNo
acceptedNo
turnoverNo
warningsNo
cache_hitNo
citationsNo
data_gapsNo
poll_withNo
query_idsNo
job_statusNo
lot_methodNo
gate_passedNo
trade_countNo
bundle_trustNo
equity_curveNo
max_drawdownNo
bundle_versionNo
engine_versionNo
queue_positionNo
interactive_capNo
running_secondsNo
anti_overfittingNo
estimate_secondsNo
known_strategiesNo
marketplace_cardNo
equity_curve_baseNo
persistence_errorNo
rejection_reasonsNo
run_id_resolvableNo
survivorship_safeNo
citations_persistedNo
trade_detail_reasonNo
trade_detail_statusNo
not_investment_adviceNo
trade_detail_persistedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedOutput schema / properties / fills
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Fills"
      +}
    • addedOutput schema / properties / lot_method
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Lot Method"
      +}
    • addedOutput schema / properties / trade_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Trade Count"
      +}
    • addedOutput schema / properties / trade_detail_persisted
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Trade Detail Persisted"
      +}
    • addedOutput schema / properties / trade_detail_reason
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Trade Detail Reason"
      +}
    • addedOutput schema / properties / trade_detail_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Trade Detail Status"
      +}
    • addedOutput schema / properties / trades
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Trades"
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / costs
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Costs"
      +}
    • addedOutput schema / properties / interactive_cap
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Interactive Cap"
      +}
    • addedOutput schema / properties / marketplace_card
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Marketplace Card"
      +}
  3. Changed16 schema fields changed
    • addedOutput schema / properties / bundle_trust
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Bundle Trust"
      +}
    • addedOutput schema / properties / bundle_version
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Bundle Version"
      +}
    • addedOutput schema / properties / cache_hit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Cache Hit"
      +}
    • addedOutput schema / properties / data_gaps
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Data Gaps"
      +}
    • addedOutput schema / properties / engine
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Engine"
      +}
    • addedOutput schema / properties / engine_version
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Engine Version"
      +}
    • addedOutput schema / properties / equity_curve
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "items": {},
      +        "type": "array"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Equity Curve"
      +}
    • addedOutput schema / properties / equity_curve_base
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Equity Curve Base"
      +}
    • addedOutput schema / properties / estimate_seconds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Estimate Seconds"
      +}
    • addedOutput schema / properties / job_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Job Status"
      +}
    • addedOutput schema / properties / metrics
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Metrics"
      +}
    • addedOutput schema / properties / poll_with
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Poll With"
      +}
    • addedOutput schema / properties / queue
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Queue"
      +}
    • addedOutput schema / properties / queue_position
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Queue Position"
      +}
    • addedOutput schema / properties / running_seconds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Running Seconds"
      +}
    • addedOutput schema / properties / spec
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Spec"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / citations_persisted
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Citations Persisted"
      +}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / persistence_error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Persistence Error"
      +}
    • addedOutput schema / properties / run_id_resolvable
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Run Id Resolvable"
      +}
  6. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: namespace-scoped visibility and that a foreign run_id is silently 'not found' rather than erroring, plus that rejected-run reasoning is included in the payload.

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?

Two tight sentences with no filler, and the core action ('Retrieve a previous backtest by run_id') is front-loaded. The embedded line breaks and indentation read a bit awkwardly for the tool-description slot but cost no clarity.

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?

An output schema exists, so return values need not be enumerated in prose. For a one-parameter read tool, the description covers the identifier format, its origin, the access-scoping rule, and the not-found behavior — nothing an agent needs to call it correctly is missing.

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 description coverage is 0% — the single parameter is only typed as a string titled 'Run Id'. The description compensates well by naming the exact format ('`twmd_bt_…`') and its provenance (returned by run_backtest), which the schema does not convey.

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 gives a specific verb and resource ('Retrieve a previous backtest by run_id') plus the scope of the returned payload ('the full record, including why it was rejected'). It is clearly distinguishable from list_backtests and run_backtest by being a single-record fetch keyed on a run handle, though it never names those siblings explicitly.

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?

It states where the required argument comes from ('the `twmd_bt_…` handle returned by run_backtest'), which tells the agent when this tool is callable. The visibility constraint (only runs in YOUR namespace) is an explicit usage condition, but there is no stated when-not-to-use or named alternative.

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