You'd reach for this when you're actively trading on prediction markets and need programmatic risk management beyond gut feel. It exposes Kelly criterion position sizing so you're not over-betting profitable edges, EV calculations to quantify expected value across positions, and drawdown protection to keep losing streaks from wiping you out. Useful if you're building trading bots or decision tools for platforms like Manifold, Polymarket, or Metaculus where you need systematic guardrails on bet sizing. The stdio transport makes it straightforward to pipe market odds and bankroll data through for position recommendations.
Public tool metadata for what this MCP can expose to an agent.
calculate_kelly_sizeCalculate the optimal position size for a prediction market trade using the Kelly criterion (quarter-Kelly by default). Returns the recommended dollar amount to risk, the raw Kelly fraction, and whether the size was capped by the bankroll-percentage limit.6 paramsCalculate the optimal position size for a prediction market trade using the Kelly criterion (quarter-Kelly by default). Returns the recommended dollar amount to risk, the raw Kelly fraction, and whether the size was capped by the bankroll-percentage limit.
bankrollnumbermin_sizenumberentry_pricenumberprobabilitynumberkelly_fractionnumbermax_position_pctnumbercalculate_evCalculate the expected value of a YES contract after platform fees. Returns EV, edge (model prob − market price), fee per leg, round-trip fee, and whether EV is positive. Supports Polymarket (2% flat) and Kalshi (7% × P × (1−P)) fee models.3 paramsCalculate the expected value of a YES contract after platform fees. Returns EV, edge (model prob − market price), fee per leg, round-trip fee, and whether EV is positive. Supports Polymarket (2% flat) and Kalshi (7% × P × (1−P)) fee models.
platformstringpolymarket · kalshidefault: polymarketmarket_pricenumbermodel_probabilitynumbercalculate_feeCalculate the fee per leg for a given platform and contract price. Polymarket: flat 2% of price. Kalshi: 7% × P × (1−P).2 paramsCalculate the fee per leg for a given platform and contract price. Polymarket: flat 2% of price. Kalshi: 7% × P × (1−P).
pricenumberplatformstringpolymarket · kalshicheck_risk_statusCheck current risk management status. Returns ACTIVE (safe to trade), PAUSED (daily loss limit hit — resume tomorrow), or SHUTDOWN (max drawdown exceeded — manual review required). Also returns warnings when approaching limits.5 paramsCheck current risk management status. Returns ACTIVE (safe to trade), PAUSED (daily loss limit hit — resume tomorrow), or SHUTDOWN (max drawdown exceeded — manual review required). Also returns warnings when approaching limits.
bankrollnumberdaily_pnlnumberpeak_bankrollnumberdrawdown_limit_pctnumberdaily_loss_limit_pctnumbervalidate_tradePre-trade risk check. Projects the worst case (total loss of proposed_size) and checks whether it would breach daily loss or drawdown limits. Returns approved/rejected with a reason and projected percentages.6 paramsPre-trade risk check. Projects the worst case (total loss of proposed_size) and checks whether it would breach daily loss or drawdown limits. Returns approved/rejected with a reason and projected percentages.
bankrollnumberdaily_pnlnumberpeak_bankrollnumberproposed_sizenumberdrawdown_limit_pctnumberdaily_loss_limit_pctnumberget_exposureSummarise portfolio exposure relative to bankroll. Returns total exposure %, largest position %, number of positions, and a concentration risk flag (triggered when any single position exceeds 10% of bankroll).2 paramsSummarise portfolio exposure relative to bankroll. Returns total exposure %, largest position %, number of positions, and a concentration risk flag (triggered when any single position exceeds 10% of bankroll).
bankrollnumberpositionsarraysimulate_drawdownSimulate a hypothetical sequence of losses against a starting bankroll. Shows when daily loss and drawdown limits would trigger, and reports the maximum drawdown percentage reached.4 paramsSimulate a hypothetical sequence of losses against a starting bankroll. Shows when daily loss and drawdown limits would trigger, and reports the maximum drawdown percentage reached.
bankrollnumberloss_sequencearraydrawdown_limit_pctnumberdaily_loss_limit_pctnumber