Maverick MCP 1.2.0 stops backtests from seeing the future
3 hours ago
Maverick MCP is the open-source stock market server that lets an AI assistant pull quotes, screen stocks, track a portfolio and run backtests. Version 1.2.0 corrects what its tools return for backtests, portfolios, quotes and research. If you run it in Docker, there is one step to take before you upgrade.
Ask about this presentation
Chapters
Show transcriptHide transcript
Maverick MCP is the open-source stock market server that lets an AI assistant pull quotes, screen stocks, track a portfolio and run backtests. Version 1.2.0 corrects what its tools return for backtests, portfolios, quotes and research. If you run it in Docker, there is one step to take before you upgrade.
Backtests no longer see the future. Their inputs are causal, trade durations come from timestamps, and ATR position sizing is consistent. Metrics now annualize over 252 trading sessions instead of 365 days. So a fee-free 10 percent gain over 252 sessions now annualizes to 10 percent, where it used to read above 14.
In portfolio tracking, two calls at once could lose a purchase the server had already acknowledged. Writes are now serialized, in SQLite and in PostgreSQL. Positions also round to the precision their columns store, eight places for shares and four for cost, so selling exactly what you bought closes the position.
A quote with no usable price used to come back as success, with a price of zero. Now it is an error, and a dotted class share retries with a dash. Top gainers and losers are ranked by real percent change again. Stored price history refreshes once it is a day old, and never mixes bars adjusted on different bases.
The analysis tools now report what they actually found. Research returns an insufficient evidence error when every source fails validation, where it used to synthesize an answer from nothing. Support and resistance are the observed extremes over the window you asked for, and risk confidence is reported as unavailable rather than invented.
A cancelled or stale call can no longer leave a provider's circuit breaker stuck half-open until you restart. On a fresh install, screening explains how to add symbols. The trade journal takes an optional entry date, and a new read-only tool lists your watchlists.
A client that read the old values will see different ones. Journal results keep the trade's open or closed state in trade status, and status stays the call's success or error. A profit factor with no losing trades is null, with a status field, instead of zero. Equity and drawdown curves come back as 60 points, and portfolio backtests list the symbols that failed.
The 1.1.0 image kept its databases under /app. The 1.2.0 image keeps them under /data. Back up the old files before you replace the container, then mount a named volume at /data. If your old setup used POSTGRES_URL, rename it to DATABASE_URL. The image also shrank from about 2.3 gigabytes to 1.2.
To upgrade, run the release tag straight from GitHub with uvx, or run the image from the GitHub container registry. Skip PyPI for now. That name still belongs to an unrelated project while a transfer request is open. Either way, you get backtests that no longer see the future.








