Rigor MCP
Verified statistical inference for AI agents: hypothesis tests, sequential testing, power.
Connector by mrnh · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mrnh-rigor-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 11 read · 2 write · 0 delete · 24 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 37
Read from the source code; the running server may list different tools.
Read 11 · Look things up without changing anything.
naive_peeking_inflationone_sample_t_testpower_for_one_sample_t_testpower_for_two_sample_t_testrank_biserial_correlationrecommend_testsample_size_for_one_sample_t_testsample_size_for_two_proportion_testsample_size_for_two_sample_t_testsequential_two_sample_mean_testtwo_sample_t_test
Write 2 · Create, change, send or run things.
pairwise_group_comparisonswilcoxon_signed_rank
Not yet classified 24 · We could not tell from the name and description.
benjamini_hochberg_correctionbonferroni_correctionchi_square_goodness_of_fitchi_square_independencecohens_dcohens_hcramers_veta_squaredfisher_exact_testkruskal_wallislevene_testmann_whitney_u
Show 12 more tools
mcnemar_exact_testmcnemar_testomega_squaredone_proportion_z_testone_way_anovapaired_t_testpearson_correlationpower_for_two_proportion_testsequential_two_proportion_testsimple_linear_regressionspearman_correlationtwo_proportion_z_test
Tools (37)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
benjamini_hochberg_correctionAdjust a batch of p-values for multiple comparisons, controlling the false discovery rate. Less conservative than Bonferroni; the standard choice when testing many hypotheses at once.
bonferroni_correctionAdjust a batch of p-values for multiple comparisons, controlling the family-wise error rate. Conservative; use when any false positive among the batch is costly.
chi_square_goodness_of_fitTest whether observed category counts match an expected distribution -- e.g. "are these six days-of-week signup counts evenly distributed, or skewed towards weekends?" Returns the chi-squared statistic, degrees of freedom (len-1), p-value, a citation, and a warning if any expected count is below 5 (the usual threshold below which this approximation gets unreliable).
chi_square_independenceTest whether the row and column variables of a contingency table are independent (e.g. "does group membership relate to outcome?"). Returns the chi-squared statistic, degrees of freedom, p-value, a citation, and a warning if any expected cell count is below 5 (consider cramers_v afterwards for effect size).
cohens_dStandardized mean difference between two samples (pooled SD). Use alongside two_sample_t_test, which tells you whether a difference is significant but not how large it is. Rough guidance: ~0.2 small, ~0.5 medium, ~0.8 large -- context-dependent. Returns {"value": float or null, "warnings": [...]}. value is null only when both samples have zero variance and unequal means, where the effect size is mathematically infinite -- see the warning for which direction, and report the raw mean difference instead in that case.
cohens_hEffect size for a difference between two proportions (Cohen, 1988), via the arcsine-square-root transform -- more appropriate than a raw percentage-point difference since it stabilizes variance across the full [0, 1] range. p1 and p2 are interchangeable (the sign of the result just indicates direction); use alongside two_proportion_z_test, which tells you whether a difference is significant but not how large it is. Returns a float (can be negative); rough guidance: ~0.2 small, ~0.5 medium, ~0.8 large.
cramers_vEffect size for a chi-squared test of independence (Cramer, 1946), normalized to [0, 1] regardless of table shape so it's comparable across tables of different sizes, unlike the raw chi-squared statistic. Call after chi_square_independence, passing its statistic and the same table's n/rows/cols. Returns a float in [0, 1]; rough guidance for a 2x2 table: ~0.1 small, ~0.3 medium, ~0.5 large -- the threshold shifts for larger tables.
eta_squaredEffect size for a one-way ANOVA: proportion of total variance explained by group membership. Use alongside one_way_anova, which tells you whether groups differ but not how much of the variance that accounts for. Rough guidance: ~0.01 small, ~0.06 medium, ~0.14 large. Biased upward for small samples -- prefer omega_squared when that matters. Returns a float in [0, 1].
fisher_exact_testTest whether the row and column variables of a 2x2 contingency table are independent -- exact (via the hypergeometric distribution over all tables with the same margins), unlike chi_square_independence's chi-squared approximation. Use this instead whenever chi_square_independence warns an expected cell count is below 5, or whenever the sample is small. 2x2 tables only. Returns the sample odds ratio as ``statistic`` (can be inf/0 for a zero cell), a two-tailed p-value, a citation, and warnings.
kruskal_wallisThe non-parametric alternative to one_way_anova -- use when that test's own small-df warning makes a normal-theory result suspect. Tests whether all groups are drawn from the same distribution, by ranking the combined data rather than assuming normal populations. A significant result means at least one group differs, not which one -- same caveat as one_way_anova.
levene_testTest whether two or more groups have equal population variances (homogeneity of variance) -- use this to decide equal_var for two_sample_t_test, or to sanity-check one_way_anova's equal-variance assumption. Uses the Brown-Forsythe variant (deviations from each group's median), more robust to non-normal data than the original mean-based Levene's test. Returns the same shape as one_way_anova (it's computed as one internally, on absolute deviations from each group's median).
mann_whitney_uThe non-parametric alternative to two_sample_t_test -- use when that test's own small-n warning makes a normal-theory result suspect, or the data is ordinal/skewed. Tests whether values from sample a are systematically larger or smaller than values from sample b, by ranking the combined data rather than assuming normal populations. statistic is U for sample a; pair with rank_biserial_correlation for a standardized effect size. Returns the same result shape as the parametric tests (statistic, p_value, citation, warnings).
mcnemar_exact_testExact version of mcnemar_test: an exact binomial test (p=0.5) on the discordant pairs instead of the chi-squared approximation -- the small-sample-safe alternative mcnemar_test's own warning points to, the same relationship fisher_exact_test has to chi_square_independence. ``statistic`` is b-c (the raw discordant-pair imbalance); the p-value is two-tailed.
mcnemar_testTest whether two paired proportions are equal -- e.g. the same subjects' yes/no answers before and after an intervention, or two raters' calls on the same items. Use this instead of two_proportion_z_test whenever the "two groups" are actually the same subjects measured twice; two_proportion_z_test assumes independent groups and gets the standard error wrong for paired data. Yates continuity-corrected chi-squared, 1 df -- use mcnemar_exact_test instead when there are few discordant pairs (this warns when there are). Returns that chi-squared statistic, a p-value, and a confidence interval for th…
naive_peeking_inflationDemonstrates, by simulation, why sequential_two_sample_mean_test / sequential_two_proportion_test exist: the actual false-positive rate of checking an *ordinary* fixed-sample test (two_sample_t_test, two_proportion_z_test, ...) after every new observation and stopping the first time it clears alpha, versus the alpha actually intended. Call this to show a skeptical stakeholder concretely what "just peek at the dashboard and stop early" costs before recommending the always-valid alternative. Returns the estimated true false-positive rate, its Monte Carlo standard error, and a citation.
Show 22 more tools
omega_squaredEffect size for a one-way ANOVA, less biased than eta_squared for small samples since it subtracts out the variance explained by chance alone. Use alongside one_way_anova. Can be slightly negative when the true effect is near zero -- that's expected, not an error.
one_proportion_z_testTest whether an observed proportion (successes out of n) differs from a hypothesized proportion p0 -- e.g. "is this coin fair (p0=0.5) given 55 heads in 100 flips?" Uses the normal approximation, which degrades for small n or p0 near 0 or 1; a warning is included when that assumption looks shaky. Returns the z-statistic, two-tailed p-value, a confidence interval for the true proportion, a citation, and warnings.
one_sample_t_testTest whether a sample's mean differs from a hypothesized value mu0. Returns the t-statistic, degrees of freedom, two-tailed p-value, a confidence interval for the mean, and any assumption warnings.
one_way_anovaTest whether three or more independent groups have different means -- e.g. comparing average order value across three marketing channels. A significant result means at least one group differs from the others, not which one -- follow up with pairwise two_sample_t_test calls (correcting for multiple comparisons via bonferroni_correction or benjamini_hochberg_correction) to find which. Returns the F-statistic, between/within degrees of freedom, p-value, a citation, and a warning if within-group df is small.
paired_t_testTest whether the mean difference between paired observations (e.g. before/after measurements on the same subjects, or matched pairs) is zero. a[i] and b[i] must be the two measurements of the same pair -- use two_sample_t_test instead if the two samples are independent (different subjects in each group). Returns the t-statistic, degrees of freedom (n-1), two-tailed p-value, a confidence interval for the mean difference, a citation, and assumption warnings.
pairwise_group_comparisonsRun every pairwise comparison across 2+ groups and correct for multiple comparisons in one call, instead of orchestrating k*(k-1)/2 separate two_sample_t_test/mann_whitney_u calls plus a separate correction call by hand -- and forgetting the correction is one of the most common real mistakes this package exists to prevent. The natural follow-up after a significant one_way_anova/kruskal_wallis result: pass the same groups here to find *which* group(s) differ, not just whether any do. Returns every pair's statistic, raw p-value, whether it's still significant after correction, and an effect size…
pearson_correlationTest for a *linear* association between two paired variables -- e.g. "does hours studied predict test score?" statistic is r itself (in [-1, 1]), not a t-statistic. Returns r, df (n-2), a two-tailed p-value (H0: r=0), a confidence interval for r via the Fisher z-transform, a citation, and warnings. Use spearman_correlation instead if the relationship may be monotonic but not linear, or if outliers shouldn't dominate the result. Use simple_linear_regression instead for the actual slope (units of y per unit of x), not just the strength of association.
power_for_one_sample_t_testStatistical power to detect a given Cohen's d with n observations, using a one-sample (or paired) t-test. Use for paired_t_test too -- it's a one-sample t-test on the differences, so the same power formula applies. Use sample_size_for_one_sample_t_test instead to solve for n given a target power. Returns a float in [alpha, 1].
power_for_two_proportion_testStatistical power to detect a difference between two proportions (e.g. two conversion rates) with n_per_group observations in each group, using a two-proportion z-test. p1 and p2 are interchangeable (only their difference matters) -- e.g. current vs. new conversion rate. Use sample_size_for_two_proportion_test instead to solve for n given a target power. Returns a float in [alpha, 1].
power_for_two_sample_t_testStatistical power to detect a given Cohen's d with n_per_group observations per group, using a two-sample t-test. Power is the probability of correctly detecting a real effect of this size at the given alpha; a design with low power means a non-significant result would be inconclusive rather than good evidence the effect doesn't exist. Use sample_size_for_two_sample_t_test instead to solve for n given a target power. Returns a float in [alpha, 1].
rank_biserial_correlationEffect size for a Mann-Whitney U test. Call after mann_whitney_u, passing its statistic and the two sample sizes. Positive means sample 1's values tend to exceed sample 2's; negative means the reverse; 0 is no tendency either way. Returns a float in [-1, 1]; rough guidance mirrors Cohen's d: ~0.1 small, ~0.3 medium, ~0.5 large.
recommend_testNot sure which rigor tool fits your question? Answer a few characteristics of the data and get back which tool to call, why, what to call instead if this test's assumptions look shaky, and what to run alongside it (an effect size, a power calculation, a natural follow-up). Every test in this package already documents this guidance in its own docstring for the sibling comparisons it knows about -- this tool exists so you don't have to have already read every other tool's docstring to find the one relevant cross-reference. Pure decision logic, no statistics computed here.
sample_size_for_one_sample_t_testHow many observations are needed to detect a given Cohen's d with a one-sample (or paired) t-test at the target power. Use for paired_t_test too -- a paired t-test is a one-sample t-test on the differences, so the same power formula applies. Returns a continuous value and a rounded-up integer to actually use.
sample_size_for_two_proportion_testHow many observations per group are needed to detect a difference between two proportions (e.g. conversion rates) at the target power. p1 and p2 are interchangeable -- only their difference matters.
sample_size_for_two_sample_t_testHow many observations per group are needed to detect a given Cohen's d with a two-sample t-test at the target power. Returns a continuous value and a rounded-up integer to actually use.
sequential_two_proportion_testAlways-valid test of whether two proportions (e.g. two conversion rates in a live A/B test) differ, safe to call again after every new observation in either group -- the sequential-monitoring counterpart to two_proportion_z_test. Use this instead whenever the result will be checked more than once before the experiment ends, which is the normal case for a live dashboard rather than a one-shot analysis. p1 and p2 are interchangeable (only their difference matters). tau does not need to be exact -- reuse the minimum-detectable-effect you'd otherwise plug into sample_size_for_two_proportion_test.
sequential_two_sample_mean_testAlways-valid test of whether two groups' means differ, safe to call again after every new observation in either group -- unlike two_sample_t_test, which needs a sample size decided in advance and gives no such guarantee if checked repeatedly and stopped at the first significant look (that repeated-checking failure mode is exactly what inflates false positives; see naive_peeking_inflation for a demonstration). Use this instead of two_sample_t_test whenever a result will be (or already has been) checked more than once as data accumulates, e.g. monitoring a live experiment. Returns the current ef…
simple_linear_regressionFit y = intercept + slope * x by ordinary least squares -- single predictor only. Reports the slope (change in y per unit of x), the intercept, R^2 (proportion of y's variance explained by x), and a significance test + confidence interval for the slope (H0: slope=0). Use pearson_correlation instead if you only need the strength of a linear association, not its actual units/magnitude.
spearman_correlationTest for a *monotonic* association between two paired variables, via the Pearson correlation of their ranks -- doesn't assume linearity and is far less sensitive to outliers' exact magnitude than pearson_correlation. Same return shape as pearson_correlation (statistic is rho itself, in [-1, 1]).
two_proportion_z_testTest whether two independent proportions differ -- the standard test behind comparing conversion rates between two groups (e.g. an A/B test). Returns the z-statistic, two-tailed p-value, a confidence interval for the difference in proportions, a citation, and warnings.
two_sample_t_testTest whether two independent samples have different means. Defaults to Welch's t-test (does not assume equal variances); pass equal_var=true for the classic pooled-variance test.
wilcoxon_signed_rankThe non-parametric alternative to paired_t_test -- use when that test's own small-n warning makes a normal-theory result suspect. Tests whether the median of the paired differences is zero, by ranking the absolute differences rather than assuming they're normally distributed. Pairs with a zero difference are dropped (and counted in a warning), the standard procedure. statistic is T = min(W+, W-).
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 35
- Last commit
- Sep 17, 2026 (1 month ago)
- Last release
- Sep 17, 2026 (1 month ago)
- Last package publish
- Sep 17, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.mrnh/rigor-mcp- Version
- 0.5.0
- Auth
- No auth
- Packages
- pypi rigor-mcp
- License
- MIT
- Repository
- github.com/mrnh/rigor
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Rigor MCP. Agent Mart. https://agentmart.dev/connectors/mrnh-rigor-mcp (last updated 2026-10-24)