Two patterns run through every tool. First, almost everything takes a
session_id — create or list a session before anything else. Second, building,
backtesting, and optimizing are asynchronous: the kickoff tool returns an
id, and you call wait_for_completion to learn the result. See
developer concepts for the model.Sessions
Strategies
Backtests & optimizations
create_strategy runs a backtest by default, so most new strategies arrive
already tested. Reach for backtest_existing_strategy only when the strategy
was created with backtest=false, when its backtestStatus is not_tested
or failed, or when you want a deliberate re-run.Picking the right task and ids
wait_for_completion and cancel_task are keyed by task. Match the id(s) to
the task:
Cancellation is best-effort and differs by task. For an optimization, the
session’s single running sweep stops between combinations and partial results
are kept. For a backtest or a strategy create/update, cancel only takes effect
if the worker hasn’t started — short in-flight tasks are allowed to finish.
Reference data
Utility
write_todos has full-replace semantics: each call overwrites the entire list,
so always send every todo. Keep exactly one in_progress while working, and
mark items completed as you finish.A note on hypothetical results
Any metrics these tools return — P&L, win rate, drawdown, Sharpe — come from a fixed, deterministic simulator over real historical prices, net of modeled slippage and commission. The AI never invents them.Next steps
Recipes
Worked end-to-end flows that chain these tools together.
Developer concepts
Sessions, operations, status fields, and the async model.
Connect the MCP server
Add AskFutures to Claude, Cursor, or Codex.
Authentication
Get MCP access enabled and authorized.