Home

API & MCP

Drive the platform from Claude, ChatGPT, your own scripts, or a webhook. One HTTP shim — same shape as the live runner.
Endpointshttps://trading.mwmai.no
MethodPathPurpose
GET/api/list_cellsList all cells the loader knows about
GET/api/list_strategiesList registered strategy modules
GET/api/get_strategy_param_specRead a strategy's PARAM_SPEC (requires ?name=)
POST/api/save_cellCreate or update a cell YAML
POST/api/jobsSubmit a backtest job, returns job id
GET/api/jobs/:idJob status (queued / running / completed)
GET/api/runsList completed backtest runs
GET/api/runs/:idOne run's summary stats + equity curve
GET/api/runs/:id/tradesTrade-by-trade JSON for a run
GET/api/healthzLiveness check
GET/api/get_barsOHLCV from the DuckDB store (requires ?symbol=&timeframe=&start=&end=)
GET/api/knowledgeSearch the vector brain (books, papers, skills) — ?q=&collection=
GET/api/knowledge/sourceWalk every chunk of one source file (?source_path=&collection=)
GET/api/live/quoteLast quote + session delta for a symbol (?symbol=)
GET/api/ironclad/statusPer-cell 9-step Ironclad status (?cell=&start=&end=)
GET/api/ironclad/stepsStatic Ironclad step catalogue (no cell required)
POST/api/ironclad/run_stepcoming soonOn-demand single-step trigger via the job worker
GET/api/dry_run_backtestOne-shot backtest without queueing (requires ?cell_name=&start=&end=)
Use with Claude / ChatGPT
The read endpoints above are also wrapped as MCP tools by a local MCP server (platform-api) that proxies to this same host. Point it at https://trading.mwmai.no from your own machine, add it to your MCP client config (Claude Desktop, Claude Code, or any MCP-capable client), and you can ask things like "backtest the liquidity-sweep cell on MNQ for the last year and show me the equity curve". The server runs on your side, not ours; there is nothing to sign up for.
Auth
The read endpoints are public, no key required. There is no visitor account system and no API key to manage. The write endpoints (save cell, submit job) are gated behind HTTP basic auth at the edge and are reserved for the maintainer, so the public surface is read-only by design.