Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Verified statistical inference for AI agents: hypothesis tests, sequential testing, power.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"rigor": {
"command": "uvx",
"args": [
"rigor-mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add rigor -- uvx rigor-mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"rigor": {
"command": "uvx",
"args": [
"rigor-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"rigor": {
"type": "stdio",
"command": "uvx",
"args": [
"rigor-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub mrnh, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.5.0) llegó al registro hace 2 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Systemdox
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Your architecture in your agents' context: checks, specs, ADRs and docs over MCP, at write time.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Verified statistical inference for AI agents.
LLMs are decent at reciting statistics but bad at *doing* it reliably — a t-statistic or a required sample size is a number recalled from training data, not computed and checked. rigor is the alternative: classical hypothesis testing (parametric and non-parametric), correlation and regression, effect sizes, power/sample-size calculation, multiple-comparisons correction, and always-valid sequential testing for results checked more than once before they're final, computed from scratch and returned as a cited, assumption- checked answer -- plus a decision helper for picking the right tool and a batch tool for running/correcting many comparisons at once, since "which test do I even use," "I forgot to correct for multiple comparisons," and "I peeked at the dashboard and stopped early" are their own common failure modes, distinct from getting a single formula wrong.
A concrete case where this matters. The one sample-size number everyone half-remembers is Cohen (1988)'s own worked example: d=0.5, alpha=.05, power=.80 -> n≈64 per group. It's in every textbook and slide deck, so it's also what gets pattern-matched to when a *similar*-looking question comes up. Ask instead for d=0.46, power=.85 -- a modest, realistic revision, not a trick:
$ rigor power ttest-2samp --effect-size 0.46 --power 0.85
Required n per group = 84.86 (round up: 85)
85, not "about 64" -- a third more participants to recruit than the half-remembered number suggests, from a question that *looks* like the famous one. The formula itself isn't hard (power.py runs the same bisection search either direction, in a few lines); the failure mode is that recalling a nearby-looking answer feels indistinguishable from computing the right one, right up until the number's wrong.
A second concrete case. An agent (or person) watching a live experiment's dashboard and checking the p-value every time new data comes in, stopping the moment it clears 0.05, is a textbook way to fool yourself -- and it's the default way anyone actually monitors a running experiment, fixed-sample design or not:
$ rigor sequential peeking-inflation --n-looks 10
Naive repeated peeking, 10 looks, nominal alpha=0.05 estimated true alpha = 0.1918 (+/- 0.0028 MC SE, 20000 trials)
Checking 10 times at a nominal 5% level is really running at closer to 19% -- roughly one in five "significant" results would be noise even with zero real effect. rigor sequential proportion / rigor sequential mean compute an *always-valid* p-value instead (mSPRT, Johari et al. 2017): checkable after every new observation with the false-positive rate actually staying at the nominal level, no pre-committed sample size and no correction for "how many times have I looked" required.
Built as an MCP server: a scan of the current MCP ecosystem (Context7 for coding docs, several physics/engineering/chemistry/geo servers, even Bentley's STAAD integration) found statistics/experimental design as one of the few common agent needs nobody had covered yet.
The statistics themselves (rigor/distributions.py, inference.py, nonparametric.py, correlation.py, regression.py, effect_size.py, power.py, corrections.py, plus the decision/batch helpers in advisor.py and batch.py) are pure standard library, no dependencies. The package as a whole does depend on the official mcp SDK, since the MCP server is a first-class part of what it ships, not an add-on -- see Install.
pip install rigor-mcp
(the PyPI distribution is rigor-mcp since plain rigor was already taken by an unrelated package; the importable package and the CLI command are both still just rigor.) This gets you both console commands, rigor (CLI) and rigor-mcp (MCP server) -- deliberately one install, no extras to get right, since uvx rigor-mcp (how most MCP clients would actually invoke this) has no way to request an extra.
TestResult: statistic, degrees of freedom, two-tailed p-value, a confidence interval, a citation, and assumption warnings (e.g. small-n normality reliance, low expected cell counts).TestResult.TestResult (H0: no association) with a confidence interval via the Fisher z-transform.recommend_test: a decision helper, not a statistic. Answer a few characteristics of the data/question (continuous/proportion/categorical/ordinal, how many groups, paired, small-or-skewed, association-not-difference, checked-repeatedly) and get back which tool to call, what to call instead if this test's assumptions look shaky, and what to run alongside it -- compiling the cross-references every other module's docstrings already carry into one callable answer, so an agent doesn't need to have already read all of them to find the relevant one. checked_repeatedly=True routes to a sequential_* tool where one exists (two independent groups, continuous or proportion), and otherwise says so explicitly rather than silently ignoring the flag.pairwise_group_comparisons: runs every pairwise comparison across 2+ groups (two_sample_t_test or mann_whitney_u, your choice) and applies Bonferroni/BH correction to the whole batch in one call, instead of the agent orchestrating k*(k-1)/2 separate calls plus a correction call by hand and risking forgetting the correction step. The natural follow-up one_way_anova/kruskal_wallis already recommend in their own docstrings once a result comes back significant.naive_peeking_inflation -- a seeded Monte Carlo demonstration of exactly the failure mode this exists to avoid. The always-valid guarantee itself (not just a single p-value's correctness) is checked by simulation in tests/test_sequential.py. One deliberately counterintuitive choice: complete separation at a small n (e.g. 0/5 vs. 5/5) reports *no* actionable evidence (p=1), not the maximal evidence a one-shot Fisher's exact test would call it -- because this test gets checked after every single observation, and small-n complete separation happens under the null purely by chance often enough (~40% at n=1 per arm) that treating it as proof would defeat the always-valid guarantee itself. Caught by the guarantee simulation during development, not by inspection.rigor.py at the repo root is a thin shim so python3 rigor.py ... also works from a plain checkout, without installing anything).CLI, once installed:
rigor ttest one-sample --data 5.1,4.9,5.3,5.0,4.8,5.2 --mu0 5.0
rigor corr pearson --x 1,2,3,4,5 --y 2,4,5,4,5 rigor regress --x 1,2,3,4,5 --y 3,5,7,9,11 rigor nonparam mann-whitney --a 1,2,3 --b 4,5,6 rigor power ttest-2samp --effect-size 0.5 --power 0.8 rigor recommend --outcome-type continuous --n-groups 3 # which test fits? rigor posthoc --groups "1,2,3|4,5,6|7,8,9" --labels A,B,C # pairwise + correction rigor mcnemar --table "794,86;150,570" # paired proportions, e.g. before/after rigor sequential proportion --successes1 55 --n1 500 --successes2 40 --n2 500 --tau 0.05
rigor sequential peeking-inflation --n-looks 10 # ...vs. naively checking 10 times rigor --help # full list of subcommands (ttest, ztest, chi2, fisher, mcnemar,
or straight from a checkout without installing anything:
python3 rigor.py ttest one-sample --data 5.1,4.9,5.3,5.0,4.8,5.2 --mu0 5.0
MCP server, over stdio (the transport local clients like Claude Code expect):
pip install rigor-mcp
rigor-mcp
or from a checkout: pip install mcp && python3 -m rigor.mcp_server.
Register it with Claude Code:
claude mcp add rigor -- rigor-mcp
(or, from a checkout: claude mcp add rigor -- python3 -m rigor.mcp_server, run from this repo's root or with an absolute module path). For interactive poking with the MCP Inspector, run it as a script rather than the installed command — which means the package root has to be put on the path by hand, since the Inspector imports the file directly:
pip install "mcp[cli]"
PYTHONPATH=. mcp dev rigor/mcp_server.py
cohens_d corre
Solo se muestra el principio; lee el resto en el repo