# Stats Explorer (npm · stats-explorer-mcp)

Verified statistics for AI agents: guided tests, A/B tests, Tukey HSD, reports, optional Jev checks.

- Trust score: 62/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `stats-explorer-mcp`: 62/100 (this document), [markdown](https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp.md), [page](https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp)

## Channel facts

- Registry: `npm`
- Package: `stats-explorer-mcp`
- Version: `1.5.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 80/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 40 of 106 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4669 tokens (~203/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 78/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 34% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Stats Explorer MCP server?

Stats Explorer runs locally as an npm package, launched with npx -y stats-explorer-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add meador793-stats-explorer-mcp -- npx -y stats-explorer-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "meador793-stats-explorer-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "stats-explorer-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "meador793-stats-explorer-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "stats-explorer-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add meador793-stats-explorer-mcp -- npx -y stats-explorer-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "meador793-stats-explorer-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "stats-explorer-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add meador793-stats-explorer-mcp --command npx --arg -y --arg stats-explorer-mcp
```

### Hermes

```yaml
mcp_servers:
  meador793-stats-explorer-mcp:
    command: "npx"
    args: ["-y", "stats-explorer-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "meador793-stats-explorer-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "stats-explorer-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add meador793-stats-explorer-mcp -t stdio -c npx -a -y stats-explorer-mcp
```

### Other

```json
{
  "mcpServers": {
    "meador793-stats-explorer-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "stats-explorer-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-25 (score 62, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-24 (score 47)

First indexed and scored.

## MCP tools (23)

### `start_analysis` (~204 tokens)

Start an analysis

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.

Input parameters:

- `file` (string): The data file the user named or attached to the chat (CSV, TSV, Excel or Parquet): pass its path or name, never its contents. Large files are fine.
- `mode` (string, required): "explore" for describing, comparing, ranking, summarising, charting or finding patterns (most analytics questions); "hypothesis_test" when asked whether a difference or relationship is significant /…
- `question` (string, required): The user's request, in their own words.

### `state_hypotheses` (~299 tokens)

Step 1: state the question, hypotheses and test

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.

Input parameters:

- `alpha` (number)
- `alternative` (string): Decide from the question, never from the data.
- `confidence` (number)
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `h0` (string): Null hypothesis in plain words (a sensible default is proposed if omitted).
- `h1` (string)
- `test` (string, required)
- `test_arguments` (object, required): Fields for the chosen test (file, columns, groups, type, method, ...). Not alpha/alternative.

### `check_assumptions` (~73 tokens)

Step 2: validate the data against the test's assumptions

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_spread` (~35 tokens)

Step 3: check spread

Step 3. Standard deviation, IQR, coefficient of variation, outliers and variance ratio for the data in the plan.

### `power_analysis` (~169 tokens)

Step 4: calculate power / plan sample size

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.

Input parameters:

- `alpha` (number)
- `alternative` (string)
- `effect_size` (number)
- `n_per_group` (integer)
- `power` (number): Target power (default 0.8 in a hypothesis test).
- `smallest_effect` (number)
- `use_conventional` (boolean)

### `run_test` (~49 tokens)

Step 5: run the test

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_check` (~154 tokens)

Step 6: sanity-check rare events against base rates

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.

Input parameters:

- `condition_column` (string)
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `file` (string)
- `prevalence` (number)
- `sensitivity` (number)
- `specificity` (number)
- `test_column` (string)

### `skip_step` (~51 tokens)

Skip step 4 or 6 with a reason

Only steps 4 (power) and 6 (base rates) can be skipped, with a short reason that will appear in the report.

Input parameters:

- `reason` (string, required)
- `step` (number, required)

### `workflow_status` (~30 tokens)

Workflow status

Shows the current analysis, which of the six steps are done, and the saved results (for the report).

### `ab_test_plan` (~282 tokens)

A/B test sample size

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.

Input parameters:

- `adjust_for_variants` (boolean): Split α across the comparisons with the control (Bonferroni) when there are 3+ variants.
- `alpha` (number): Significance level. Default 0.05.
- `alternative` (string): two-sided (default), greater (first > second / sample > value), or less.
- `baseline_mean` (number)
- `baseline_rate` (number)
- `baseline_sd` (number)
- `daily_traffic` (number)
- `mde` (number): Smallest lift that matters: absolute (0.005 = +0.5 percentage points) or relative with mde_type "relative" (0.1 = +10%).
- `mde_type` (string)
- `metric` (string, required)
- `n_per_variant` (integer)
- `power` (number)
- `variants` (integer)

### `inspect_data_file` (~154 tokens)

Inspect a data file

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.

Input parameters:

- `file` (string, required): Path to the data file: CSV, TSV, Excel (.xlsx/.xls) or Parquet. If the user attached the file to the chat, pass its path or name here (a file:// link, @name or #file:name also works); do not paste it…

### `choose_test` (~171 tokens)

Choose a statistical test

Recommends which test tool to run for a research question, with the assumptions to check. Call this first when unsure.

Input parameters:

- `goal` (string, required): ab_test: compare variants of an experiment (A/B/n) against a control; plan_ab_test: sample size for one.
- `has_covariate` (boolean): A numeric variable to adjust for.
- `known_population_sd` (boolean)
- `multiple_outcomes` (boolean): Several numeric outcomes analysed together.
- `outcome_is_numeric` (boolean): A/B tests: the metric is a number per visitor (revenue, time) rather than converted yes/no.
- `outliers_or_ranks` (boolean): Data are ranks, ordinal, or have strong outliers.
- `paired` (boolean): Same subjects measured twice / matched pairs.

### `describe` (~221 tokens)

Descriptive statistics

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.

Input parameters:

- `column` (string)
- `confidence` (number): Confidence level for intervals. Default 0.95.
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `file` (string): Path to the data file: CSV, TSV, Excel (.xlsx/.xls) or Parquet. If the user attached the file to the chat, pass its path or name here (a file:// link, @name or #file:name also works); do not paste it…
- `group_column` (string)
- `name` (string)
- `values` (array)

### `group_summary` (~276 tokens)

Summary by group

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.

Input parameters:

- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `descending` (boolean)
- `file` (string): Path to the data file: CSV, TSV, Excel (.xlsx/.xls) or Parquet. If the user attached the file to the chat, pass its path or name here (a file:// link, @name or #file:name also works); do not paste it…
- `group_column` (string, required)
- `sort_by` (string)
- `stats` (array): Which numbers to show (default count, sum, mean, median; just count without value_column).
- `top` (integer)
- `value_column` (string)

### `confidence_interval` (~204 tokens)

Confidence interval

CI for a mean (column the user asked about) or a proportion. The user confirms the column first.

Input parameters:

- `column` (string)
- `confidence` (number): Confidence level for intervals. Default 0.95.
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `file` (string): Path to the data file: CSV, TSV, Excel (.xlsx/.xls) or Parquet. If the user attached the file to the chat, pass its path or name here (a file:// link, @name or #file:name also works); do not paste it…
- `n` (integer)
- `successes` (integer)
- `type` (string, required)
- `values` (array)

### `correlation` (~251 tokens)

Correlation (descriptive)

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.

Input parameters:

- `confidence` (number): Confidence level for intervals. Default 0.95.
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `file` (string): Path to the data file: CSV, TSV, Excel (.xlsx/.xls) or Parquet. If the user attached the file to the chat, pass its path or name here (a file:// link, @name or #file:name also works); do not paste it…
- `method` (string)
- `x` (array)
- `x_column` (string)
- `x_name` (string)
- `y`
- `y_column` (string)
- `y_name` (string)

### `create_visualization` (~194 tokens)

Create a chart

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.

Input parameters:

- `bins` (integer)
- `chart` (string, required)
- `column` (string)
- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `file` (string, required)
- `group_column` (string)
- `overwrite` (boolean)
- `save_to` (string)
- `title` (string)
- `x_column` (string)
- `y_column` (string)

### `build_report` (~161 tokens)

Build a report

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.

Input parameters:

- `confirmation_token` (string): Only after the user has confirmed the proposed choices: the confirmation_token from the previous response.
- `format` (string)
- `include` (array)
- `overwrite` (boolean)
- `save_to` (string)
- `title` (string)

### `find_relationships` (~210 tokens)

What relates to a column

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.

Input parameters:

- `columns` (array): Columns to consider (default: all others).
- `confirmation_token` (string): Only after the user has confirmed: the confirmation_token from the previous response.
- `file` (string, required): The data file the user named or attached (path or name; never its contents).
- `target` (string, required): The numeric outcome to explain, e.g. Revenue.
- `top` (integer)

### `job_status` (~63 tokens)

Wait for a large-file job

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.

Input parameters:

- `job_id` (string, required)
- `wait_seconds` (number)

### `cancel_job` (~30 tokens)

Cancel a large-file job

Stops a background job started by a tool that answered STILL RUNNING.

Input parameters:

- `job_id` (string, required)

### `large_file_plan` (~122 tokens)

Choose how to read a large file

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.

Input parameters:

- `choice` (string, required)
- `file` (string, required)
- `save_columns` (boolean)

### `manage_cache` (~56 tokens)

Saved large-file columns

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).

Input parameters:

- `action` (string, required)
- `file` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp#diagnostics

## Score history

- 2026-11-05: 62
- 2026-11-04: 62
- 2026-11-03: 62
- 2026-11-02: 62
- 2026-11-01: 62
- 2026-10-31: 62
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 62
- 2026-10-27: 62
- 2026-10-26: 62
- 2026-10-25: 62
- 2026-10-24: 47

## Common questions

### What is the Stats Explorer MCP server?

Stats Explorer is an MCP server listed in the public MCP registry as io.github.Meador793/stats-explorer-mcp. Verified statistics for AI agents: guided tests, A/B tests, Tukey HSD, reports, optional Jev checks. This page covers its npm package (stats-explorer-mcp).

### Is the Stats Explorer MCP server safe to use?

Stats Explorer scores 62 out of 100 on VerifyMCP. We recorded 3 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. 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 Stats Explorer MCP server expose?

Stats Explorer exposes 23 tools: start_analysis, state_hypotheses, check_assumptions, check_spread, power_analysis, and 18 more. Their descriptions and schemas cost roughly 3,459 tokens of context every time the server is loaded.

### Is the Stats Explorer MCP server still maintained?

Stats Explorer 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 Stats Explorer MCP server under?

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

## Links

- npm package: https://www.npmjs.com/package/stats-explorer-mcp
- Socket report: https://socket.dev/npm/package/stats-explorer-mcp
- Repository: https://github.com/meador793/stats-explorer-mcp
- Changelog RSS feed: https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp.json
- HTML version of this page: https://verifymcp.io/servers/meador793-stats-explorer-mcp/stats-explorer-mcp
