Skip to main content

Crosstabs MCP Server

Python 3.10+ License: MIT MCP

One install provides two local MCP servers: 39 statistical tools for focused contingency-table analysis and 23 headless research workflow tools that take an agent from project creation and dataset import through tab books, coding, tracker repair, editable reports, and portable export. Individual statistical tools report whether their inference is exact, asymptotic, or simulated.

Features

Core Statistical Tests

Test Description
Chi-square Pearson's chi-square test of independence
G-test Likelihood-ratio alternative with an asymptotic p-value
Fisher's exact Two-sided fixed-margin exact p-value for 2×2 integer counts
McNemar's Exact two-sided binomial inference for fewer than 20 discordant pairs; continuity-corrected chi-square otherwise

Effect Sizes & Measures

Measure Use Case
Cramér's V Effect size for any table size (with bias correction)
Phi coefficient Effect size for 2×2 tables
Odds ratio Association strength with a large-sample Woolf log interval
Relative risk Risk comparison between groups
Risk difference Absolute risk reduction
Attributable risk Population-level impact

Ordinal Measures

Measure Description
Spearman's rho Rank correlation
Kendall's tau Concordance measure
Goodman-Kruskal gamma Ordinal association
Somers' D Asymmetric ordinal measure
Stuart's tau-c Rectangular table measure

Agreement & Reliability

Measure Description
Cohen's kappa Inter-rater agreement with an asymptotic normal interval
Weighted kappa Linear/quadratic agreement with an asymptotic normal interval

Advanced Analysis

Tool Description
CMH test Stratified analysis with a Robins-Breslow-Greenland pooled-OR interval
Breslow-Day Test homogeneity of odds ratios
Correspondence analysis Dimensionality reduction for tables
Monte Carlo chi-square Fixed-margin simulated p-value estimate
Power analysis Equal-group, two-sided normal approximation using Cohen's h
Multiple comparisons Bonferroni and FDR corrections

Installation

From PyPI (recommended)

pip install crosstabs

Inspect the public source distribution

python -m pip download --no-deps --no-binary=:all: crosstabs

The development repository is currently private. PyPI publishes the package's source archive; email support@crosstabs.com for issue reports or source-access questions.

Quick Start

Run the MCP Server

# Focused statistical calculators (Python 3.10+)
crosstabs

# End-to-end research workspace (Python 3.10+ and Node.js 20+)
crosstabs-headless

Or directly:

python -m crosstabs_mcp.server

Configure an MCP client

Add to your ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "crosstabs_workspace": {
      "command": "crosstabs-headless"
    },
    "crosstabs_statistics": {
      "command": "crosstabs"
    }
  }
}

The headless server stores project state and generated artifacts under the local application-data directory. Deterministic calculations stay on the machine. code_open_ends is the only current operation that can use Vercel AI Gateway; it requires an explicit external-processing approval in the tool call.

Headless workflow tools

create_project, import_dataset, profile_dataset, define_row_set, define_banner, apply_filter, set_weight, run_table, run_tab_book, compare_waves, code_open_ends, review_themes, approve_coding, undo_change, replace_dataset, detect_schema_drift, repair_schema, generate_report_pack, refresh_report_pack, export_project, list_projects, inspect_project, and get_audit_history.

Mutations use expected revisions and idempotency keys. Results include structured warnings, evidence IDs, audit records, and MCP resources for generated files.

Usage Examples

Once configured, Claude can perform statistical analysis:

Chi-square Test

User: Test if there's an association between treatment and outcome:
      Treatment A: 50 success, 30 failure
      Treatment B: 20 success, 40 failure

Claude: [Uses chi_square_test with matrix [[50,30],[20,40]]]
        χ² = 11.67, p = 0.0006
        Cramér's V = 0.29 (small-medium effect)
        There is a significant association between treatment and outcome.

Odds Ratio

User: Compare an adverse outcome between exposure groups:
      Exposed: 30 outcome-present, 70 outcome-absent
      Unexposed: 15 outcome-present, 85 outcome-absent

Claude: [Uses odds_ratio with matrix [[30,70],[15,85]]]
        OR = 2.43 (95% CI: 1.21-4.87)
        Exposure is associated with 143% higher odds of the outcome.

The epidemiology tools (odds_ratio, relative_risk, risk_difference, and attributable_risk) use one explicit orientation: [[exposed outcome+, exposed outcome-], [unexposed outcome+, unexposed outcome-]]. They return machine-readable zero/infinite/undefined states rather than silently continuity-correcting point estimates. Attributable/prevented fractions require causal identification assumptions; an association alone does not establish the counterfactual effect of removing an exposure.

Fisher's Exact Test

User: I have a small sample: [[3,1],[1,5]]. Is it significant?

Claude: [Uses fishers_exact with the matrix]
        p = 0.190476 (two-tailed exact)
        Not statistically significant at α=0.05.

Available Tools

Tool Name Description
chi_square_test Chi-square test of independence
g_test G-test (likelihood ratio)
fishers_exact Fisher's exact test (2×2)
mcnemar_test McNemar's test for paired data
odds_ratio Odds ratio with CI
relative_risk Relative risk with CI
risk_difference Risk difference with CI
cramers_v Cramér's V effect size
phi_coefficient Phi for 2×2 tables
cohens_kappa Cohen's kappa
weighted_kappa Weighted kappa
spearmans_rho Spearman's rank correlation
kendalls_tau Kendall's tau-b
goodman_kruskal_gamma Gamma coefficient
somers_d Somers' D
tau_c Stuart's tau-c
cmh_test Cochran-Mantel-Haenszel
breslow_day_test Breslow-Day test
linear_trend_test Linear-by-linear association
correspondence_analysis Correspondence analysis
monte_carlo_chi_square Fixed-margin Monte Carlo p-value estimate
power_analysis Two-sided normal-approximation power/sample size using Cohen's h
bonferroni_correction Bonferroni p-value adjustment
fdr_correction Benjamini-Hochberg FDR
standardized_residuals Cell residuals
post_hoc_chi_square Post-hoc chi-square decomposition
proportion_ci Confidence interval for proportion
check_assumptions Validate chi-square assumptions
recommend_test Method suggestions with assumption caveats
mosaic_plot_data Data for mosaic visualization
stacked_bar_data Data for stacked bar chart
attributable_risk Attributable risk measures
chi_square_yates Yates' continuity correction
effect_size Multiple contingency-table effect sizes
lambda_coefficient Goodman–Kruskal lambda
uncertainty_coefficient Theil's uncertainty coefficient
detect_outliers Outlier detection
crosstab_from_data Build table from raw data
crosstab_from_csv Build table from CSV

Development

Run Tests

pip install -e ".[dev]"
pytest tests/ -v

Project Structure

mcp-server-python/
├── crosstabs_mcp/
│   ├── __init__.py
│   ├── headless_launcher.py # Node version check and bundled-server launcher
│   ├── headless-mcp.mjs     # Local-first 23-tool workflow MCP server
│   ├── server.py          # Main MCP server
│   └── advanced_stats.py  # Compatibility imports; math lives in server.py
├── tests/
│   ├── test_statistics.py       # Statistical behavior tests
│   └── test_reference_parity.py # Public SciPy reference parity
├── scripts/                    # Distribution verification
├── LICENSE
├── pyproject.toml
├── uv.lock
└── README.md

Requirements

  • Python 3.10+
  • mcp >= 1.0.0
  • fastmcp >= 0.1.0
  • numpy >= 1.24.0
  • scipy >= 1.10.0
  • pandas >= 2.0.0
  • statsmodels >= 0.14.0

License

MIT License - see LICENSE for details.

Contributing

The development repository is currently private. Send corrections and proposed changes to support@crosstabs.com.

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crosstabs-1.1.1.tar.gz (793.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crosstabs-1.1.1-py3-none-any.whl (588.0 kB view details)

Uploaded Python 3

File details

Details for the file crosstabs-1.1.1.tar.gz.

File metadata

  • Download URL: crosstabs-1.1.1.tar.gz
  • Upload date:
  • Size: 793.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crosstabs-1.1.1.tar.gz
Algorithm Hash digest
SHA256 97fbafd7ac5d987cc73f906f3e697af24b7fc7efe1d7ed7dce12249f507a0d11
MD5 7e8da1349d4ac145ae36dc042d1b8492
BLAKE2b-256 fa9706222601e8a8681e2c7927032450df0843aea65b4080ec2344c1d8c3ae73

See more details on using hashes here.

Provenance

The following attestation bundles were made for crosstabs-1.1.1.tar.gz:

Publisher: release-python-mcp.yml on barangaroo/crosstabs-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file crosstabs-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: crosstabs-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 588.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crosstabs-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f7cd6f21600c5d65adc7dfb94fd961de22679a8eb2e36ca89f91e0155713c82
MD5 c92b6e976c4469b651b022dc3949e9f5
BLAKE2b-256 a88420470b0b27afb971ecdf40103f6628eba96f0f91a9cd7801d0b20e86749d

See more details on using hashes here.

Provenance

The following attestation bundles were made for crosstabs-1.1.1-py3-none-any.whl:

Publisher: release-python-mcp.yml on barangaroo/crosstabs-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page