Rigor MCP vs ClaudeR RStudio MCP Server
A side-by-side look at the Rigor MCP and ClaudeR RStudio MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Rigor MCP for data science tools work as a local process; choose ClaudeR RStudio MCP Server for data science tools as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Rigor MCP when
- You need dedicated capabilities in the Data Science Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
one_sample_t_test, two_sample_t_test, paired_t_test.
Choose ClaudeR RStudio MCP Server when
- You need dedicated capabilities in the Data Science Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
execute_r, execute_r_with_plot, get_r_info.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Data Science Tools | Data Science Tools |
| Quality signal | 56/100 · Good | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | BYOK (pay the provider) |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 356 |
| Directory activity | 1 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 37 | 41 |
| Full listing | View Rigor MCP | View ClaudeR RStudio MCP Server |
Tools & capabilities
Rigor MCP tools 37
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.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.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.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.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.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).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.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).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.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 the difference in marginal proportions.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.- +25 more on the listing page
ClaudeR RStudio MCP Server tools 41
execute_rExecute R code and return the outputexecute_r_with_plotExecute R code that generates a plotget_r_infoGet a summary of the R environment. Returns package count (not full list), first 20 variables, and R version. Use requireNamespace('pkg') to check for specific packages.get_active_documentRead the focused RStudio editor BUFFER (not the file on disk). Returns the content, the document path, and 'unsaved_changes' telling you whether the buffer differs from disk. Use this as the source of truth while editing; read_file reports the DISK state, which will be stale until the edit is saved. Errors loudly if no document is open or focused.modify_code_sectionRegex find-and-replace in an RStudio editor document. Saves to disk by default (save=false stages the edit in the buffer only). Pass 'path' to target a specific file instead of whatever happens to be focused. The replacement may change the number of lines. Returns 'saved_to_disk' so you know whether read_file will reflect the change.insert_textInsert text into an RStudio editor document at the cursor, or at a given line/column. Saves to disk by default (save=false leaves it unsaved in the buffer). Pass 'path' to target a specific file rather than whatever is focused.suggest_editPropose an edit for the user to APPROVE before it is applied, instead of writing it directly. Uses rstudioapi::showEditSuggestion() when the RStudio build provides it; otherwise stages the change in the editor buffer and deliberately does NOT save, so the user accepts by saving or rejects with Undo. Use this when the user asked to review changes first. After calling it, STOP and wait for the user's decision.create_task_listCreate a task list for the current analysisupdate_task_statusUpdate the status of a task and optionally add notesclean_error_logClean a ClaudeR session log by removing error blocks and their duplicates. Parses the log, finds errors, checks if a fix follows each error, removes the error blocks and any duplicate code blocks that preceded them. Returns a report of what was found and removed.execute_r_asyncExecute long-running R code in a separate background R process. Returns a job ID immediately and the main session stays fully responsive. Use this for code that may take longer than 25 seconds (e.g., model fitting, simulations, large data processing). TWO MODES: 1. Auto-marshaled (recommended). Pass `inputs` (object names from the main session to copy into the background) and `outputs` (object names the background code creates that should be loaded back into the main session). The tool handles all saveRDS/readRDS plumbing. Inputs are snapshotted at submit time, so changes in the main session after submit do not affect the running job. Outputs are auto-loaded into the main session when get_async_result returns complete. 2. Manual. Omit `inputs` and `outputs` and write self-contained code that uses saveRDS()/readRDS() to pass data in and out yourself. Backwards-compatible with existing patterns. The background process never has access to the main session's environment except via the marshaled `inputs`. Connection objects (DB connections, open file handles) cannot be marshaled. The background process must `library()` any packages it needs. You can continue executing other code with execute_r while the job runs. Use get_async_result to check status when ready.get_async_resultCheck the result of an async R job. Waits ~10 seconds before checking to avoid excessive polling. If the job is still running, call this again.- +29 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Rigor MCP
{
"mcpServers": {
"rigor-mcp": {
"command": "uvx",
"args": [
"rigor-mcp"
]
}
}
}
ClaudeR RStudio MCP Server
{
"mcpServers": {
"clauder-rstudio-mcp-server": {
"command": "uvx",
"args": [
"--refresh",
"clauder-mcp"
]
}
}
}
Frequently asked questions
Rigor MCP is categorized under Data Science Tools and uses a local stdio subprocess. ClaudeR RStudio MCP Server belongs to Data Science Tools and uses a local stdio subprocess. Pick Rigor MCP for data science tools work and ClaudeR RStudio MCP Server for data science tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Rigor MCP has no declared pricing — check the project's own site. ClaudeR RStudio MCP Server is bring-your-own-key: usage is billed by the API provider you supply a key for. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add rigor-mcp and clauder-rstudio-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Rigor MCP has a quality signal of 56/100 (Good) with 1 views, 0 installs and 1 GitHub stars. ClaudeR RStudio MCP Server has 65/100 (Great) with 4 views, 0 installs and 356 GitHub stars.