Stochastly MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STOCHASTLY_MCP_SCRIPT | No | For a nonstandard installation, set STOCHASTLY_MCP_SCRIPT to the installed app's stochastly_mcp.py. This is a local path, not a network endpoint. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| adversarial_checkA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| analyze_dependenceA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| app_infoA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 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. |
| backtest_graphA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 Check the plan with compose_graph first. Data comes from |
| backtest_statusA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| compose_graphA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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
|
| crypto_registryA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. List the cross-sectional crypto strategies (momentum and mean reversion) with their
timeframes, directions, parameter grids and filters; each entry carries an 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. |
| data_sourcesA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. List the data source names registered in this build, as Use it before backtest_graph to pick its |
| diagnostic_explainA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| diagnostics_catalogA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. List every diagnostic code the app can raise, as 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. |
| export_atlasA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| export_paperA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| export_tearsheetA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| live_stateA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 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. |
| node_catalogA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. Return the graph editor's node catalogue, grouped by family: every strategy, filter, gate,
cost and reading node with its parameter schema, plus an This is the only source of valid node keys ("family/name") for compose_graph and backtest_graph; call it before writing a plan. Needs Stochastly open with an Atelier or Portfolio licence. |
| paper_sectionsA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 |
| pilot_appA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 |
| portfolio_combineA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. Combine several finished runs into one portfolio (book) and judge it: returns the combined series, the weights actually used, the correlation matrix between sleeves, each sleeve's contribution and a deflated Sharpe ratio. The book is saved as a new run, so adversarial_check and export_tearsheet accept its run_id. 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). |
| reality_check_profilesA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| red_flag_checkA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 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 |
| registriesA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. List the strategy families, instrument groups and timeframes ("15M", "30M", "1H") the
app's built-in scanner screens are populated from, as 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. |
| research_statusA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. Read the saved journal of an in-app Research session: its status, turns, ideas, evidence,
token count and errors, with 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 |
| run_smoke_testsA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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 |
| set_live_stateA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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
( |
| tail_app_logA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. Return the last lines of the app's own log file, with 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. |
| v9_get_runA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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: |
| v9_list_runsA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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. |
| v9_protocol_aA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. 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
|
| v9_tail_logA | Requires the Stochastly desktop app: this tool runs inside the app, which is not installed on this machine. Install it from https://stochastly.com/pricing, open it and activate a licence. Return the last lines of a batch scanner run's log file, as 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Most tools target a distinct resource+action (compose_graph vs backtest_graph vs backtest_status, export_paper vs export_atlas vs export_tearsheet, the v9_* scanner family vs the backtest_* graph family). A few clusters overlap thematically, notably the evaluation tools (red_flag_check, adversarial_check, reality_check_profiles, diagnostics_catalog/explain) and the app-control trio (live_state, set_live_state, pilot_app), but descriptions explicitly cross-reference 'use X instead', resolving most confusion.
Everything is snake_case with a predictable, readable style and useful subsystem prefixes (backtest_, export_, diagnostic_, v9_). The main deviation is that some tools are verb_noun (compose_graph, export_paper, red_flag_check) while others are noun-only (app_info, data_sources, node_catalog, live_state), so the verb pattern isn't fully uniform.
29 tools is on the heavy side and includes clear bloat (set_live_state is explicitly legacy, run_smoke_tests is dev-only), which everyone pays the surface-area cost for. Still, the server spans genuinely different subsystems—graph backtesting, a separate batch scanner, portfolio combination, report export, diagnostics, and app piloting—so the count is defensible rather than gratuitous.
The research lifecycle is well covered: discover nodes/registries/data sources, compose and run graphs, poll status, judge results (red_flag_check, adversarial_check, portfolio_combine), and export papers/tearsheets, plus the parallel v9 scanner surface and app/diagnostics introspection. Minor gaps exist—e.g. no tool to enumerate the day's session run registry directly, and inspection of graph runs depends on a run_id from a prior call—but these are workable.