Skip to main content
Glama

Prediction Markets Quant

Strategy Stress Test

stress_test_strategy
Read-only

Paste a prediction-market trade history (or just trades, wins and average price) and get whether the edge is statistically real, how many trades would prove it, and where it leaks. The verdict reads net per dollar staked after fees, never a pooled win rate, with the bar raised for every strategy version tried. Accepts positions, a CSV, or Kalshi's realized P&L export (lots are grouped into positions). Nothing you paste is stored.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "stress_test_strategy"
  }
}

Input Schema

NameRequiredDescriptionDefault
csvNoCSV text instead of trades: header price_c,contracts,won,fee_c,at,venue,maker (one row per position), or Kalshi's realized P&L export. Up to 10,000 lines.
winsNoQuick check: how many of the trades won.
makerNoQuick check: maker fills (Kalshi maker fee).
venueNoVenue for fees when none are given: kalshi (fee computed), polymarket or other (fee 0, flagged). One of: kalshi · polymarket · other.
tradesNoEITHER an array of positions [{ price_c (1–99, price paid per contract), contracts?, won (true | false | null = closed before settlement, then give net_c), fee_c? (total fee, ¢), net_c?, at? (ISO), venue? (kalshi | polymarket | other), maker? }] OR, for a quick check, the number of trades (with wins and avg_price_c).
avg_price_cNoQuick check: average price paid per contract, ¢ (1–99).
strategies_triedNoHow many versions you tried before this one (default 1). More tries raise the bar (Bonferroni).

Output Schema

NameRequiredDescriptionDefault
bucketsNoPer price bucket: n, win %, break-even %, net ¢/contract.
sourcesNo
verdictNoedge_confirmed / losing / not_proven_yet (net per dollar staked).
headlineNoOne plain sentence: the verdict.
tell_userNoShow this sentence to the user first.
timestampNo
needs_inputNo
example_callNo
trades_neededNoTrades that would settle it, or null.
data_freshnessNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare it is a safe, closed-world read; the description adds real behavioral context beyond that: the verdict is net per dollar staked after fees rather than a pooled win rate, the significance bar is raised per strategy version tried (Bonferroni), fees are computed or zeroed by venue, and pasted data is not stored. It omits response size/latency and failure handling for malformed input, but the privacy, fee, and multiple-testing disclosures are the substantive ones.

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?

Four sentences, front-loaded with what you get, then the verdict definition, then accepted inputs, then the privacy guarantee. Dense but nearly every clause carries information; minor jargon ('where it leaks') and stacked qualifiers make it slightly harder to scan than ideal.

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?

For a 7-parameter, all-optional tool with an output schema, the description covers input modes, fee treatment, statistical correction, and data handling — enough to call it correctly. Remaining gaps are minor because the return shape is documented in the output schema rather than needing prose.

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 coverage is 100%, which sets a baseline of 3, but the description earns more by explaining the two mutually exclusive input modes (positions array versus numeric quick check) and the semantics of grouping Kalshi export lots into positions. It also clarifies the practical effect of strategies_tried beyond the schema's terse 'Bonferroni' note.

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?

The description states a specific operation on a specific resource: paste a prediction-market trade history and get a statistical verdict on whether the edge is real, the sample size needed, and where it leaks. That is clearly distinct from every sibling (edge sizing, EV, arbitrage, ladder math), so an agent can route here without opening a 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?

It gives concrete entry conditions: paste a full trade history, or use the quick check with trades/wins/avg_price_c, and it lists the accepted input shapes (positions, CSV, Kalshi realized P&L export). It does not name a when-not or point to sibling alternatives such as calculate_ev or kelly_size, so it stops short of full routing guidance.

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.