Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Stochastly Desktop

PYPI · STOCHASTLY-MCP

Local MCP access to Stochastly desktop nodes, diagnostics and research tools.

Available components

+16 this week 82 Trust /100

Last scanned (1 hour ago)

Scores higher than 84% of PyPI servers

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 28 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 20 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6555 tokens (~226/item across 29 items; 29 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 29 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
    • Security disclosure: fail → unverified ▼ functional
  • 4 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.97 → pass security
  • 1 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 30 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/stochastly-mcp@0.2.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 28 packages
Packages resolved 28
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 29 exposed · ~6,555 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
adversarial_check ~352

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Run six controls that try to refute a finished run (drift against its own block-bootstrap null, an edge-free twin of the prop-firm cycle, Romano-Wolf multiplicity, concentration on the best days, frictions, stability across sub-periods) plus a positive control that checks a known edge would be detected on the same data. Call it after any promising result. `synthesis` is SURVIVES, REFUTED, UNDERPOWERED (effect smaller than the sample can resolve; `observations_needed` says how many bars it would take) or BLIND (the positive control failed, so the sample, not the strategy, must change). Each passed control reports its `floor`, the smallest effect it could have rejected. Deterministic arithmetic, no language model; measured error rates in the test suite: 0.017 false positives, 0.000 false negatives. Needs the run's full PnL series with at least 8 points; an unknown run is a named error. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
n_bootinteger–Number of bootstrap resamples.
n_simsinteger–Number of simulations for the randomised controls.
run_idstringyesId of a finished run, from backtest_graph or backtest_status.
seedinteger–Random seed; the same seed gives the same answer.

No output schema declared.

No examples provided.

analyze_dependence ~278

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Measure the dependence between two equity curves you supply, by fitting one copula or the mutual information to their paired increments (only timestamps present in both curves count). Use it to ask whether two strategies or markets move together before combining them; to actually build and judge a combined book from finished runs, use portfolio_combine instead. Descriptive only: it reports the fit, it does not run a hypothesis test or take a decision. Malformed curves are refused with a named error (wrong count, missing unit, unordered dates, non-finite values). Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
instrumentsarrayyesExactly two curves. Each is an object with `equity` (list of finite numbers, at least 2), an optional `symbol`, `timestamps` or `dates` (ISO dates, same length, unique, increasing) and `pnl_unit` set…
kindstringyesDependence model: a gaussian, student, clayton or gumbel copula fit, or mutual_information on the ranks.

No output schema declared.

No examples provided.

app_info ~173

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Report the installed Stochastly app: version, build_edition, platform, python, cpu_count, hw_factor, license_status (key masked), build (git commit, dirty flag, engine fingerprint), engine_integrity (whether the running engine matches that fingerprint) and `_engine` (`sidecar` when it talks to the open app, `in-process` in a source checkout). Call it first to check that the app is reachable and which plan is active; a refusal from any other tool names the plan it needs. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

backtest_graph ~396

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Run a strategy graph end to end on your data: build the configurations, run a cost-aware backtest with leakage-free splits, apply the overfitting gates and return the verdict, the number of survivors and the run_id. Each finished run is added to the day's session registry, and `multiplicity` reports how many runs and configurations this session has tried. Check the plan with compose_graph first. Data comes from `data_root` or a registered `source`; nothing is downloaded for you and an unknown source is refused. A plan with custom Python is refused unless the user allowed custom code on this machine. Use background=true for long runs, then backtest_status. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
backgroundboolean–True returns a run_id at once; poll backtest_status for the result.
capinteger–Maximum number of parameter configurations evaluated.
data_root––Folder holding your own price files.
directionstring–Trade direction: "L" (long only), "S" (short only) or "LS" (both).
planobjectyesStrategy graph, same shape as in compose_graph; node keys come from node_catalog.
sourcestring–Registered data source name from data_sources; "folder" reads data_root. An existing folder path given here is used as data_root.
symbols––Symbols to trade; omit for the default universe, which the run names in its note.
tfstring–Bar timeframe, for example "1h".
timeout_sinteger–Seconds to wait for the result (minimum 5); after that, poll backtest_status.

No output schema declared.

No examples provided.

backtest_status ~170

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Get the state of a graph run started by backtest_graph: while running, status, progress and message; once done, failed or cancelled, the same summary backtest_graph returns (verdict, survivors, multiplicity). Use it after backtest_graph with background=true, or when a foreground run hit its timeout. A finished run is recorded once in the day's session registry. An unknown run_id is a named error. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
run_idstringyesrun_id returned by backtest_graph.

No output schema declared.

No examples provided.

compose_graph ~443

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Check a strategy graph plan and turn it into a run specification, counting how many parameter configurations it would test. Nothing is executed and no data is read. Use it to build and debug a plan before backtest_graph, which takes the same arguments. Returns ok, configs, runnable, strategy, filters, gates and the full spec; an invalid plan returns ok false with the exact field at fault. A plan carrying custom Python is reported in `custom_code_nodes` with `runnable_over_mcp`, since backtest_graph refuses it unless the user allowed custom code. Strategy and filter params are single-value locks; omit one to sweep its catalogue values. Gates take a threshold, op "ge" or "le", and window "oos", "is", "oos2", "sealed", "full" or "wfa". Cost nodes charge the run; lectures are informational. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
directionstring–Trade direction: "L" (long only), "S" (short only) or "LS" (both); long, short, both and similar spellings are accepted.
planobjectyesStrategy graph. Keys: strategy {key, params, code}, filters [{key, params, code, mode}], gates [{key, threshold, params, op, window}], lectures [{key, params}], execution {..}, data {is_pct, oos1_pct…
symbols––Symbols to trade; omit for the default universe.
tfstring–Bar timeframe, for example "1h".

No output schema declared.

No examples provided.

crypto_registry ~129

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List the cross-sectional crypto strategies (momentum and mean reversion) with their timeframes, directions, parameter grids and filters; each entry carries an `implemented` flag. Use it to see which crypto ranking strategies exist. For graph node keys use node_catalog; for the general strategy families use registries. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

data_sources ~141

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List the data source names registered in this build, as `sources`; "folder" (a folder of your own price files) is always one of them. Use it before backtest_graph to pick its `source` argument. A source missing from this list is not available: pass `data_root` (a folder of price files) to backtest_graph instead. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

diagnostic_explain ~165

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Explain one diagnostic code: what the quantity measures, why it matters, and which measurement could move the verdict (never a promise that an action will improve it). Use it on codes returned by red_flag_check; list every code with diagnostics_catalog. An unknown code returns an error with the list of known codes. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
codestringyesDiagnostic code such as "OF01", "OF03" or "CO01", as returned in red_flag_check `violations`.

No output schema declared.

No examples provided.

diagnostics_catalog ~125

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List every diagnostic code the app can raise, as `diagnostics` (code, family, page) and `severities`. Use it to know what the checks can hold against a run, and so what they cannot judge yet; explain one code with diagnostic_explain. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

export_atlas ~239

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Write one research paper PDF per finished run with a shared layout and title, and return ok, dir, n, papers ({name, path, pages, rank, or error} each) and failed. Use it to report several runs consistently; export_paper handles a single run. Every paper prints how many papers the batch contains, because producing N reports is N trials. Every run must be finished and carry a verdict, otherwise nothing is written; a paper that fails to render is listed with its error. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
layout––Ordered section ids from paper_sections, shared by every paper.
out_dir––Output folder; files with the same names are overwritten. Omit for a new folder in the app's papers folder.
run_idsarrayyesIds of the finished runs, one paper each.
title––Title shared by every paper.

No output schema declared.

No examples provided.

export_paper ~281

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Write a multi-page research paper PDF for one finished backtest run: abstract, numbered equations, tables, robustness section and a mandatory backtest disclosures box. Returns ok, path, pages, figures, tables, omitted and the layout actually printed. Use it for a full write-up of one run; export_tearsheet makes a one-page summary and export_atlas a batch of papers. Every number comes from the run; a section whose data the run lacks is omitted with a note, and an unknown layout id is an error. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
hypothesis––The hypothesis registered before the search. Only pass it if that is true; without it the paper is labelled exploratory.
instrument––Instrument name printed on the paper.
layout––Ordered section ids from paper_sections; omit for the default paper.
path––Output PDF path; an existing file there is overwritten. Omit for a new time-stamped file in the app's results folder.
run_idstringyesId of a finished backtest run.
title––Paper title.

No output schema declared.

No examples provided.

export_tearsheet ~191

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Write a one-page tearsheet image or PDF summarising a finished run, and return ok, path and fmt. Use it for a quick shareable summary; export_paper writes the full paper. Research runs have no tearsheet and are refused, as are unknown or unfinished runs. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
fmtstring–"png" or "pdf"; any other value gives png.
path––Output file path; an existing file there is overwritten. Omit for tearsheet_<run_id> in the app's tearsheets folder.
run_idstringyesId of a finished backtest, ML or portfolio run.

No output schema declared.

No examples provided.

live_state ~162

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Read what the open app last reported it is showing (workspace, chart, symbol, timeframe, indicators, graph nodes, current run, active assistant agent; never secrets) from its state file, with `age_s` (seconds since it was written) and `present` (false when the app has never written it). Use it to check the effect of pilot_app or the context of the user's screen. A large age_s means the app is probably closed. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

node_catalog ~262

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Return the graph editor's node catalogue. Without `family`: an index with one line per node, `family/name [status](parameter names)`, grouped by list, plus counts and timeframes. With `family`: the full schema of that family's nodes (values, defaults, symbol limits, notes, an `exportable` flag on strategies). This is the only source of valid node keys ("family/name") for compose_graph and backtest_graph; call it before writing a plan, then once per family you use. The index note says which status cannot be placed. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
family––A list or family name from the index (for example "strategies", "filter", "cost", "ml"); returns that family's full parameter schemas. Omit for the index of every node.
forceboolean–True reloads the catalogue from the engine instead of the in-memory copy; only needed after the engine was updated while the app was open.

No output schema declared.

No examples provided.

paper_sections ~143

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List every section a research paper can contain, each as {id, group, label, mandatory, in_default}, default sections first in print order. Use it to choose the `layout` ids for export_paper or export_atlas. Mandatory sections (the simulation letterhead and the backtest disclosures) are always added back, and the paper follows the order you pass. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pilot_app ~412

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Drive the open Stochastly app on the user's screen: open a .stly document, switch screen, show a chart, start a backtest, display a note or send a prompt to the in-app assistant. Fields combine in one call and apply in the order open, screen, chart, run; the user sees each step in the status bar and the session journal. Use it when the user should watch the work in the app; to run a graph and get its numbers back directly, use backtest_graph. The command replaces any pending one. It has no effect unless the app is open and the user enabled piloting (off by default); the response always carries `pilot_enabled`. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
chart––Chart key to show in the display panel.
note––Message shown to the user on screen; say what you are doing and why.
prompt––Text for the in-app assistant, or a command: /verdict <hypothesis>, /research [@agent...] [rounds=N] [budget=N] <topic>, /stop. Cannot be combined with run.
runboolean–True starts a backtest on the graph in place. Cannot be combined with prompt. Refused for a document with custom Python unless the user allowed it.
session_path––Path to a .stly document (at most 8 MB) to open in the Build screen. Only a summary of it comes back, never its content.
sym––Legacy symbol field, ignored by the current app.
tf––Legacy timeframe field, ignored by the current app.
workspace––Screen to switch to: Home, Build, Backtest, Analyze, Results or Research.

No output schema declared.

No examples provided.

portfolio_combine ~467

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Combine several finished runs into one portfolio (book) and judge it: returns the numerical correlation matrix between sleeves, simultaneous-loss days and percentage on common calendar days, the correlation on the worst 5% of portfolio days, each sleeve's contribution, a deflated Sharpe ratio, and the head and tail of the combined series and weights. Stressed correlation is null if fewer than two selected days or zero variance prevent estimation. The book is saved as a new run, so adversarial_check and export_tearsheet accept its run_id and read the full series. Use it for a multi-strategy or multi-market book; a single graph run covers one strategy, and analyze_dependence only measures two curves you supply. Weights at bar t use only bars before t, and the drawdown cap acts on the previous bar's equity. Nothing is re-simulated: runs must be finished in the current app session; runs in different PnL units are refused, not converted. Requires a Portfolio licence (Atelier gets a named refusal).

NameTypeReqDescription
dd_capnumber–Drawdown at which the book is de-levered; 0 turns it off.
dd_derisknumber–Leverage multiplier applied once dd_cap is reached.
lookbackinteger–Trailing window in bars used to estimate weights.
max_leveragenumber–Upper bound on the book's leverage.
methodstring–Weighting: equal weights, volatility targeting, risk parity, or hierarchical risk parity.
n_trialsinteger–Number of candidate sleeves to deflate the Sharpe ratio by; 0 uses the number of runs passed.
rebalanceinteger–Bars between two weight updates.
run_idsstring–Comma-separated ids of at least 2 finished runs from this app session (a unique prefix is enough).
vol_targetnumber–Target volatility per bar for the whole book; 0 turns it off.

No output schema declared.

No examples provided.

reality_check_profiles ~137

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Return the three synthetic example profiles of the reality check screen (profitable, marginal, overfit) and the prop-firm rule presets it can apply (FTMO Standard and Pro 100k phase 1, The5ers Hyper Growth). Reference data only: to judge a real result use red_flag_check or adversarial_check. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

red_flag_check ~343

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Combine five overfitting measures into one deployment verdict, GREEN, AMBER or RED, with a score from 0 (no red flag) to 100 (severe); RED sets `deploy_blocked`. Also returns each component and its contribution, reasons, `violations` (diagnostic codes with severity), which measures were missing, and the coverage needed for GREEN. Use it to decide whether a configuration or run is fit to deploy. Pass null for anything you did not measure: missing evidence lowers coverage instead of being guessed. Explain a code from `violations` with diagnostic_explain; to try to refute a finished run, use adversarial_check. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
dsr–yesDeflated Sharpe ratio of the result; null if not measured.
oos_is_sharpe_ratio–yesOut-of-sample Sharpe divided by in-sample Sharpe; null if not measured.
realization_ratio–yesReal PnL divided by theoretical PnL, after frictions; null if not measured.
selection_score–yesMultiple-testing adjusted p-value (Romano-Wolf) returned by every run in `selection.score`; lower is better. null if not measured.
slippage_sens_delta–yesChange in realization_ratio when frictions are multiplied by 1.5; null if not measured.

No output schema declared.

No examples provided.

registries ~147

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List the strategy families, instrument groups and timeframes ("15M", "30M", "1H") the app's built-in scanner screens are populated from, as `strategy_families`, `instrument_groups` and `timeframes`. For the node keys you pass to compose_graph or backtest_graph, use node_catalog instead; for the cross-sectional crypto strategies, use crypto_registry. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

research_status ~200

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Read the saved journal of an in-app Research session: its status, turns, ideas, evidence, token count and errors, with `age_s` since it was last saved. Start a session with pilot_app(prompt="/research ...") and stop it with pilot_app(prompt="/stop"). The journal is saved at start, after each turn and at the end, so a `running` status is a checkpoint, not proof the session is still alive. Returns `present: false` when no session exists. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
session_id––Journal id (lowercase letters, digits and dashes, no path or extension). Omit for the most recent session.

No output schema declared.

No examples provided.

run_smoke_tests ~176

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Development only: start the Playwright smoke test of the app interface (visual regression and a clean console, headless, on mocked test data) and return pass or fail with the diagnostic line. It needs a source checkout with its test harness installed. An installed app does not ship it, so there the tool returns `dev_only: true` and starts nothing. Requires an Atelier or Portfolio licence.

NameTypeReqDescription
specstring–Playwright spec file name inside the checkout's tests folder.
timeout_sinteger–Seconds before the test process tree is killed and a failure is returned.

No output schema declared.

No examples provided.

set_live_state ~175

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Legacy: queue a command asking the old chart terminal to show another symbol or timeframe. The current app does not apply these two fields, and the response says so. To drive the current app (open a document, switch screen, start a backtest) use pilot_app. The command replaces any pending one and only takes effect when piloting is enabled (`pilot_enabled` in the response). Requires an Atelier or Portfolio licence.

NameTypeReqDescription
sym––Symbol for the legacy chart terminal, for example "BTCUSDT".
tf––Timeframe for the legacy chart terminal, for example "1h".

No output schema declared.

No examples provided.

tail_app_log ~158

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Return the last lines of the app's own log file, with `present`, `age_s` and, when the log is older than one hour, `stale: true` and a note saying it may describe an earlier session. Use it to diagnose an app error. For a batch scanner run use v9_tail_log; for a graph run use backtest_status. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
linesinteger–Number of trailing log lines to return.

No output schema declared.

No examples provided.

v9_get_run ~173

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Read one batch scanner run: its verdict file, the robustness counts (n_total, n_robust_pass), its PBO and the last 30 log lines. Use v9_list_runs first to find the run_id, and v9_tail_log for more log lines. Errors are named: `no_runs` when nothing has run, `run_not_found` for an unknown id. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
run_idstring–A run_id from v9_list_runs, or "latest" for the newest run.

No output schema declared.

No examples provided.

v9_list_runs ~192

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. List the runs of the separate batch strategy scanner (run folders named V9_* or V95_*), newest first, each with run_id, status (running, done or error) and a summary (verdict, n_configs, pbo_cscv, auc, best_config). Use it to find a run_id for v9_get_run or v9_tail_log. Runs started from a graph are not listed here: use backtest_status for those. Returns an empty list when the scanner is not installed on this machine. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
limitinteger–Maximum number of runs returned, newest first.

No output schema declared.

No examples provided.

v9_protocol_a ~155

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Summarise the batch scanner's saved regression check: how many baseline configurations its current engine reproduces from the previous one, as n_total, n_strict (exact matches), n_soft (within tolerance), n_cumul, pct_cumul and the tolerance used. It reads a result file computed earlier by the scanner and starts nothing. Returns the error `no_protocol_a_results` when that file does not exist. Needs Stochastly open with an Atelier or Portfolio licence.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

v9_tail_log ~170

Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Request access at https://stochastly.com/request-access, then install and open the app. Return the last lines of a batch scanner run's log file, as `lines`. Use it to follow a running scan or see why one failed; v9_get_run gives the verdict and robustness counts. An empty list means no run or no log yet. Needs Stochastly open with an Atelier or Portfolio licence.

NameTypeReqDescription
linesinteger–Number of trailing log lines to return; must be 0 or more.
run_idstring–A run_id from v9_list_runs, or "latest" for the newest run.

No output schema declared.

No examples provided.

Install

How do I install the Stochastly Desktop MCP server?

Stochastly Desktop runs locally as a PyPI package, launched with uvx stochastly-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · stochastly-mcp

# add to Claude Code
claude mcp add com-stochastly-desktop -- uvx stochastly-mcp
Common questions

What is the Stochastly Desktop MCP server?

Stochastly Desktop is an MCP server listed in the public MCP registry as com.stochastly/desktop. Local MCP access to Stochastly desktop nodes, diagnostics and research tools. This page covers its PyPI package (stochastly-mcp).

Is the Stochastly Desktop MCP server safe to use?

Stochastly Desktop scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Stochastly Desktop MCP server expose?

Stochastly Desktop exposes 29 tools: adversarial_check, analyze_dependence, app_info, backtest_graph, backtest_status, and 24 more. Their descriptions and schemas cost roughly 6,555 tokens of context every time the server is loaded.

Is the Stochastly Desktop MCP server still maintained?

Stochastly Desktop is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Stochastly Desktop MCP server under?

Stochastly Desktop declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.