Overview
A crypto research server that keeps its own trial count, so the statistics it reports cannot be quietly understated.
quant-research is an MCP server for
backtesting crypto strategies. It exposes 39 tools over streamable HTTP, and
you drive it from a conversation — Claude, Cursor, or any MCP client.
What makes it different is not the backtester. It is where the statistical state lives.
The problem it solves#
Every correction for multiple testing — deflated Sharpe, the Bonferroni family, minimum backtest length — takes as input N, the number of strategies you actually tried. Report N yourself and the correction becomes decorative: you can always pick a smaller number and clear the bar.
In practice N is not understated dishonestly. It is understated because nobody remembers. A research session runs for three weeks across a dozen conversations. Sweeps get re-run. A context window gets compacted. By the time someone computes a deflated Sharpe, the honest N is unrecoverable and the number that gets used is the number someone can recall.
What this server does about it#
The trial count, the dataset splits, the strategy hashes and the cost model live in an append-only ledger on the server.
- You cannot pass N to
stats_deflated_sharpe. It reads the ledger. - Every evaluated configuration is recorded. Database triggers refuse
DELETEandUPDATEon the trial table, so a trial cannot be uncounted after it disappoints. - Split ranges are immutable once registered.
- Holdout data is unreadable until a strategy is frozen, and readable exactly once.
- A
family_forkinherits its parent's trial history, so starting a new family does not reset the bar.
N only ever rises. That is the entire design.
What it found about itself#
The server's own recorded research is the best illustration of why this
matters. A moving-average family, btc-ma, produced a Sharpe of 0.9497
on Bitcoin in-sample — the best of 28 recorded training runs.
Run across ten assets as a single cross-sectional trial, the same specification pooled to -1.376. Three of ten assets were positive. The best was AERO-USD at 1.19. The rank correlation between per-asset Sharpe and per-asset trade count was -0.61: the assets that traded less scored better, which means the ranking was tracking turnover and its cost, not signal quality.
The first number is the one that gets published. Both are in the ledger.
What it is not#
It emits no buy, sell or hold signals, no target prices and no position sizes, and it makes no claim about future returns. It tells you whether a backtest means anything. Nothing here is investment advice.
Where to go next#
- Quickstart — connect a client and run something.
- The trial ledger — what counts as a trial.
- Statistics reference — what each test actually measures.
- Tool reference — all 39 tools with parameter schemas.
- For agents — a system prompt that maps an AI agent to these docs.
Read this page as Markdown:
/docs/index.md