Stats Explorer MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TYPESAFE_API_KEY | No | API key used when `STATS_EXPLORER_JEV` is set to `enforce`. | |
| STATS_EXPLORER_JEV | No | Jev checks: `cooperate`, `enforce` or `orchestrated`. See docs/JEV.md for its other settings. | off |
| STATS_EXPLORER_CACHE | No | Keep columns read from large files: `ask`, `on` or `off`. | ask |
| STATS_EXPLORER_ROOTS | No | Folders data files may be read from (and reports written to). Separated by `:` on macOS/Linux or `;` on Windows. | workspace |
| STATS_EXPLORER_GUIDED | No | `off` exposes the individual test tools (`t_test`, `anova`, …) directly, without `start_analysis` and the six steps. | on |
| STATS_EXPLORER_APP_URL | No | Changes the app link at the end of results. | |
| STATS_EXPLORER_WORKERS | No | Parallel readers for large files (at most 16 by default). | cores − 1 |
| STATS_EXPLORER_CACHE_DIR | No | Where kept columns go. | system temp |
| STATS_EXPLORER_HIDE_LINK | No | `1` removes the one-line app link at the end of results. | 0 |
| STATS_EXPLORER_STREAM_MB | No | CSV/TSV/Parquet files above this size are streamed (Parquet: by rows × columns). | 512 |
| STATS_EXPLORER_ASK_SECONDS | No | Ask before a full read expected to take longer than this. | 120 |
| STATS_EXPLORER_CONFIRM_VIA | No | `chat` asks for confirmations in the conversation even if the client claims to support forms (recommended for Claude Code). | auto |
| STATS_EXPLORER_MAX_FILE_MB | No | Refuse files larger than this. | no limit |
| STATS_EXPLORER_SAMPLE_PERCENT | No | Size of the quick sample. | 1 |
| STATS_EXPLORER_APPROVAL_SECRET | No | Secret used when `STATS_EXPLORER_JEV` is set to `orchestrated`. | |
| STATS_EXPLORER_BACKGROUND_SECONDS | No | Continue as a background job after this long. | 40 |
| STATS_EXPLORER_CONFIRM_SELECTIONS | No | `off` runs with the agent's column, chart and report choices without asking you. | on |
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": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_analysisA | Call this first for every new question. Read the user's request and choose mode: "hypothesis_test" when they want to know whether a difference, effect or relationship is real / significant / caused by something, or want to test a claim; "explore" when they want to describe, summarise, visualise, estimate or plan, without testing a claim. If the request is ambiguous, ask the user before calling. Returns the steps to follow. |
| state_hypothesesA | Step 1 of a hypothesis test. Fix the test, the data selection and H₀/H₁ BEFORE looking at results. test_arguments are the same fields the test takes (e.g. t_test: {type, file, column, group_column, group1, group2, equal_variances, mu0}; anova: {file, column, group_column}; ab_test: {metric, file, variant_column, outcome_column, control, success_value, expected_split, segment_column}; chi_square: {type, file, row_column, col_column}; correlation: {file, x_column, y_column, method}). Only use columns the user asked about. The user confirms every column/group choice, the direction and α. Calling it again later revises the plan and restarts steps 2–6. |
| check_assumptionsA | Step 2. Checks shape (skew, kurtosis, small samples), group sizes, outliers, expected counts, ANCOVA slope equality and missing values for the test fixed in step 1. If an assumption fails, revising the test now (state_hypotheses again) is principled. |
| check_spreadA | Step 3. Standard deviation, IQR, coefficient of variation, outliers and variance ratio for the data in the plan. |
| power_analysisA | In a hypothesis test (step 4): power of the planned test for the smallest effect the user cares about, using the data's sample size. smallest_effect is Cohen's d for means, r for correlations, or the true proportion p₁ for proportion tests. Ask the user for it; if they don't know, pass use_conventional: true. In an exploration: give two of effect_size, n_per_group, power to plan a two-group study. |
| run_testA | Step 5. Runs exactly the test, columns and hypotheses the user confirmed in step 1 and returns the statistic, p-value, effect size, CI and verdict. Requires steps 1–4. |
| base_rate_checkA | Step 6 (or standalone in an exploration). For rare-event questions (fraud, defects, diagnoses, churn): what share of positive flags is real (PPV). Give prevalence, sensitivity, specificity (0–1), or file + condition_column + test_column (0/1 columns). If the question is not about rare events, use skip_step 6 instead. |
| skip_stepA | Only steps 4 (power) and 6 (base rates) can be skipped, with a short reason that will appear in the report. |
| workflow_statusA | Shows the current analysis, which of the six steps are done, and the saved results (for the report). |
| ab_test_planA | Plan an A/B test: visitors needed per variant to detect the smallest lift that matters (mde) at a given power, and/or the smallest lift detectable with a given n_per_variant; days needed from daily_traffic. Conversion: baseline_rate. Continuous: baseline_sd (and baseline_mean for a relative mde). Use in an exploration (planning a future test); a running hypothesis test sizes itself in step 4. |
| inspect_data_fileA | Lists the columns of a local CSV/TSV/JSON file with their types, missing values, ranges and category values, plus a 5-row preview. Use before running tests on a file so you pass correct column and group names. |
| choose_testA | Recommends which test tool to run for a research question, with the assumptions to check. Call this first when unsure. |
| describeB | n, mean, SD, median, quartiles, range, skewness, kurtosis, shape and CI for the mean, for a column the user asked about (optionally by group). The user confirms the columns first. |
| group_summaryA | Analytics-style breakdown: count, sum, mean, median, min, max or SD of a numeric column for each category of another column (e.g. total revenue by region, average order value by segment, top 10 products by profit, rows per status), sorted, top N. Without value_column it counts rows per category. Descriptive only, no p-values. The user confirms the columns first. |
| confidence_intervalC | CI for a mean (column the user asked about) or a proportion. The user confirms the column first. |
| correlationA | Strength and direction of the relationship between two numeric columns (r or ρ, CI, least-squares line), WITHOUT a p-value. To test whether a relationship is significant, use a hypothesis_test analysis with test "correlation". The user confirms the columns first. |
| create_visualizationA | Creates a chart for the columns the user asked to see: histogram (column), box_plot (column, optional group_column), scatter (x_column, y_column), bar (x_column categories, optional y_column mean), line (x_column, y_column), pie (x_column categories, optional y_column sum). The user confirms the chart type and columns first. Optional save_to (.svg). Charts are kept for build_report. |
| build_reportA | Builds a report from results created in this session, only when the user asks for one. include = the result ids the user wants (default: the current analysis). The user confirms the sections. A hypothesis-test write-up (question, hypotheses, how it was tested, findings, verdict, base rates) appears only for completed hypothesis tests; explorations get no hypothesis section. format html (default) or markdown; save_to writes a file in the workspace. |
| find_relationshipsA | For open analytics questions such as "what drives revenue?", "what is related to churn time?" or "which factors matter for score?": ranks every other column (or the ones given) by how strongly it relates to a numeric target column. Pearson r for numeric columns, correlation ratio η plus the highest/lowest group for categorical ones. Descriptive (no p-values); follow up on the top findings with group_summary, correlation, charts or a hypothesis test. Works on files of any size. Use it in an explore analysis. The user confirms the target and the columns first. |
| job_statusA | For a tool that answered STILL RUNNING: waits up to wait_seconds for the background job, then returns its result (the same result the tool would have returned) or its progress so far. |
| cancel_jobB | Stops a background job started by a tool that answered STILL RUNNING. |
| large_file_planA | Only when a tool answered LARGE FILE, and only after asking the user: record their choice for that file. choice "full" reads every row (exact results, can take a long time, runs in the background); "sample" reads about 1% of the rows in blocks spread across the file (quick, approximate). save_columns keeps the columns that are read on disk so later questions on them are fast. Then call the original tool again. |
| manage_cacheB | Lists or deletes the columns kept on disk from large files (see large_file_plan save_columns). action "list" or "clear" (all, or one file). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| hypothesis_test | Walks through the six "Bring it all together" steps for a question about a data file. |
| analyze | Any analytics or statistics question about a data file: summaries, rankings, drivers, distributions, charts or significance tests. |
| explore_data | Describe, chart and estimate, without hypothesis tests. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
The six-step hypothesis workflow is explicitly numbered, and the tool descriptions draw deliberate lines (e.g. correlation vs. correlation hypothesis test, describe vs. group_summary). However, start_analysis and choose_test both claim to be "call this first," and describe/group_summary/confidence_interval overlap on summary statistics, so a few boundaries need careful reading.
All names are consistently snake_case and readable, but conventions mix verbs (run_test, start_analysis, find_relationships) with bare nouns (describe, correlation, workflow_status, skip_step). The pattern is predictable enough to navigate, just not uniform verb_noun.
23 tools is on the heavy side for a stats assistant; several workflow steps (check_assumptions/check_spread, skip_step, workflow_status) are granular enough that they could be folded into parameters or a single status tool. Each is individually justified by the guided methodology, so nothing is pure filler, but the surface is larger than necessary.
Coverage of the analysis lifecycle is strong: inspection, descriptives, assumption checks, power, tests, planning, visualization, reporting, plus caching and background-job management. Gaps exist around row filtering/derived columns and listing or exporting raw datasets, which limit deeper exploratory work but are workable around.