Developers

Connect NoxarQuant to an AI assistant, or call it yourself.

The MCP server lets an assistant such as Claude or Cursor import your trades, read your groups and verdicts, run a Monte Carlo and save a trading plan. It is a thin wrapper over a REST API you can call with the same token. Everything it returns describes your own past trades; none of it is a forecast or advice.

Who can use it

Pro and Elite, and the 7-day free trial. On Basic, or once a trial has ended, every call answers 403 with a message naming the plan. A token only ever reads and writes the account it was made for.

What it can change

Two things, and nothing else:

  • importing trades adds them to your journal;
  • saving a trading plan replaces the checklist you have saved.

Every other call is a read. Nothing here places a trade, connects to an exchange or moves money, and the verdicts, scores and thresholds are worked out on our side, never by the assistant.

Set it up

1. Get a token. In the app, Settings → Account → Connect an assistant makes a token that starts dvt_ and shows a config block to paste. It is shown once, so copy it then. You can revoke it in the same place. From a terminal, npx @noxarquant/mcp pair prints a code to confirm at noxarquant.com/devices/pair while signed in, then prints the token.

2. Add it to your client. For Claude Desktop, in claude_desktop_config.json:

{
  "mcpServers": {
    "noxarquant": {
      "command": "npx",
      "args": ["-y", "@noxarquant/mcp"],
      "env": { "NOXAR_DEVICE_TOKEN": "dvt_..." }
    }
  }
}

Restart the client and ask it something like: import these trades into NoxarQuant and tell me which groups lost money. Keep the token secret: it opens your account.

MCP tools

ToolWhat it does
noxar_import_tradesAdds trades to your journal. Give every trade of one strategy the same strategy label; that label is how results are grouped and filtered. NoxarQuant works out the market conditions itself, usually within a few minutes.
noxar_get_risk_mapYour groups: one coin in one set of conditions each, with its verdict (CORE, PROMISING, FORMING or NDC), a 0 to 100 score, trade count and P&L. Filter by strategy or symbol.
noxar_run_monte_carloStarts a resampling run on your later test-window trades in the groups you choose, labelled on the earlier training window. Returns a job_id straight away.
noxar_get_monte_carlo_resultThe run's status while it works, then the training and test summaries, drawdown percentiles and risk of ruin.
noxar_get_trading_planReads your saved do / caution / review checklist, with the group figures behind it.
noxar_save_trading_planSaves a checklist of up to 30 items. This replaces your saved plan.
noxar_list_prop_firmsThe prop firm challenges that can be simulated: each firm, its evaluation models, account sizes and published fees. Gives the exact values noxar_prop_survival needs.
noxar_prop_survivalReplays your past trades through one challenge's rules many times: how often attempts passed, hit a loss limit or were unresolved, which rule ended them, and the expected fees to pass. Needs at least 30 closed trades.

All eight are in version 0.2.0 of the package. If your assistant lists only six, it is running 0.1.0: use @noxarquant/mcp@latest in the config above and restart it.

REST API

Base address https://noxarquant.com. Send the token as a bearer token on every request. Responses are JSON.

curl https://noxarquant.com/api/v1/me/risk-map?symbol=BTC \
  -H "Authorization: Bearer dvt_..."
MethodPathWhat it does
POST/api/v1/me/trades/importImport trades (the import tool). Body: { trades: [...], timezone }.
GET/api/v1/me/risk-mapYour groups and verdicts. Optional ?strategy= and ?symbol=.
GET/api/v1/me/clusters/summaryCounts of each verdict and your top CORE group, if any.
POST/api/v1/me/monte-carloStart a run. Returns { job_id }.
GET/api/v1/me/monte-carlo/{job_id}A run's status, then its result.
GET/api/v1/me/trading-planYour saved checklist.
PUT/api/v1/me/trading-planReplace your saved checklist. Body: { checklist: [...] }.
GET/api/v1/me/prop-catalogThe prop-firm challenges that can be simulated, with each firm's published rules and fees.
POST/api/v1/me/prop-survivalYour closed trades replayed through one challenge's rules. Body: { firm, account_size, model?, num_simulations? }. Needs at least 30 closed trades.
GET/api/v1/me/trades/openYour open positions and their unrealised P&L.

Verdict names

The API and the MCP tools return the stored verdict names. The app shows the plain words beside them.

In the APIIn the appRule
COREStrongSQN of 2.5 or more, shown from 30 trades
PROMISINGPromisingSQN of 1.6 or more on 30 or more trades, short of strong
FORMINGToo early, or No clear edgeno verdict yet: under 30 trades it reads too early; at 30 or more, no clear edge
NDCLost moneySQN of minus 1 or lower on 12 or more trades

Trade format for imports

FieldNotes
symbolRequired. The ticker, for example BTC or ETH.
sideRequired. long or short (buy and sell are accepted).
entry_priceRequired. A number.
exit_priceOptional. Leave it out for an open trade.
open_time, close_timeOptional. ISO 8601, for example 2026-01-15T14:30:00Z. Times without a zone are read in the timezone you send.
quantity, pnl, feesOptional numbers. Positive fees are a cost, negative ones a rebate.
r_multipleOptional.
strategyOptional, but set it: the same label on every trade of one strategy.
notesOptional text.

Send a timezone alongside the trades, for example Europe/London, for any times written without one. Do not send market-condition fields: they are worked out from price data, so a caller cannot set them.

Importing a CSV file

On the import page, pick your source and drop the file. Three formats are read directly: the Noxar template, a TradingView Strategy Tester list of trades, and a Hyperliquid fills export. For anything else, fill in the template: download it here. It has one row per closed trade with the columns symbol, side, open_time, close_time, entry_price, exit_price, quantity, pnl, pnl_pct, r_multiple, fees, strategy and notes, and two example rows.

If your export lists fees separately, put them in the fees column and give pnl before fees: the fees are taken off before anything is graded, and both figures are kept. If your pnl already has fees taken off, leave fees empty.

Errors and limits

StatusWhen
401No token, or one we do not recognise. Body: { "error": "Unauthorized" }.
403The account's plan does not include MCP and the REST API. The body's error says which plan and what to do.
429Too many requests. Body: { "error": "Too many requests" }. Wait and try again.

Reads allow 30 requests in 10 seconds. Saving a plan and running a prop survival check allow 10 in 10 seconds. Imports allow 30 in a minute, and count towards your plan's monthly trade allowance like any other import. Monte Carlo runs count towards your plan's runs.

Help

Questions about the API go to help@noxarquant.com.

NoxarQuant describes your own past trades. It does not give trading advice, and past results do not guarantee future ones.