Stats Compass README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Stats Compass listing page.

Stats Compass Logo

stats-compass-mcp

Turn your LLM into a data analyst. Multiple data science tools via MCP.

PyPI version Python 3.11+ License: MIT

Demo: Loading and exploring data

Quick Start

Terminal
pip install stats-compass-mcp

Claude Desktop

bash
stats-compass-mcp install --client claude

VS Code (GitHub Copilot)

bash
stats-compass-mcp install --client vscode

Claude Code (CLI)

Terminal
claude mcp add stats-compass -- uvx stats-compass-mcp run

Note: The first connection may fail while uvx downloads the package. If this happens, disable and re-enable Stats Compass in your MCP settings — subsequent connections will be instant.

Restart your client and start asking questions about your data.

What Can It Do?

Demo: Cleaning and transforming data
CategoryExamples
Data LoadingLoad CSV/Excel, sample datasets, list DataFrames
CleaningDrop nulls, impute, dedupe, handle outliers
TransformsFilter, groupby, pivot, encode, add columns
EDADescribe, correlations, hypothesis tests, data quality
VisualizationHistograms, scatter, bar, ROC curves, confusion matrix
ML WorkflowsClassification, regression, time series forecasting

Run stats-compass-mcp list-tools to see all available tools.

How to Prompt

Start your message with "Use stats compass to..." — this tells the AI to use the Stats Compass tools instead of trying to write code or use other methods.

Code
Use stats compass to load ~/Downloads/sales.csv and run EDA on it
Use stats compass to find my CSV files in Downloads
Use stats compass to clean the dataset and handle missing values
Use stats compass to create a histogram of the price column
Use stats compass to test if there's a significant difference in scores between group A and B
Use stats compass to train a classification model to predict churn

Tip: Without this prefix, some AI clients may try to write Python code or use shell commands instead of the Stats Compass tools — especially for tasks like finding files on your machine.

Loading Files

Local mode: Start with "Use stats compass to load..." and provide the file path or folder.

Code
Use stats compass to load the CSV at ~/Downloads/sales.csv
Use stats compass to find my data files in ~/Documents

Remote/HTTP mode: Use the upload feature (see below).

Remote Server Mode

For Docker deployments or multi-client setups:

bash
stats-compass-mcp serve --port 8000

serve binds 127.0.0.1 by default. To accept connections from other machines, set a bearer token of at least 16 characters and bind a public address:

server.ts
export STATS_COMPASS_AUTH_TOKEN="$(openssl rand -hex 24)"
export STATS_COMPASS_SECRET_KEY="$(openssl rand -hex 32)"   # encrypts upload/download links
stats-compass-mcp serve --host 0.0.0.0 --port 8000

Clients send Authorization: Bearer <token>. Without a token the server refuses a public address; --no-auth overrides that, with a warning, for a network you trust. Each session reads only its own uploads and writes only its own exports. Upload and download links carry an encrypted token that expires (downloads after 24 hours, STATS_COMPASS_DOWNLOAD_TTL_SECONDS), never the session id.

File Uploads

When running remotely, users can upload files via browser:

File Upload Interface
Code
You: I want to upload a file
AI: Open this link to upload: http://localhost:8000/upload?session_id=abc123

[Upload in browser]

You: I uploaded sales.csv
AI: ✅ Loaded sales.csv (1,000 rows × 8 columns)

Downloading Results

Export DataFrames, plots, and trained models:

Code
You: Save the cleaned data as a CSV
AI: ✅ Saved. Download: http://localhost:8000/exports/.../cleaned_data.csv

Connect Clients to Remote Server

VS Code (native HTTP support):

config.json
{
  "servers": {
    "stats-compass": { "url": "http://localhost:8000/mcp" }
  }
}

Claude Desktop (via mcp-proxy):

config.json
{
  "mcpServers": {
    "stats-compass": {
      "command": "uvx",
      "args": ["mcp-proxy", "--transport", "streamablehttp", "http://localhost:8000/mcp"]
    }
  }
}

Docker

Terminal
docker run -p 8000:8000 -e STATS_COMPASS_SERVER_URL=https://your-domain.com stats-compass-mcp

Client Compatibility

ClientStatus
Claude Desktop✅ Recommended
VS Code Copilot✅ Supported
Claude Code CLI✅ Supported
Cursor✅ Supported
GPT / Gemini⚠️ Partial

Configuration

VariableDefaultDescription
STATS_COMPASS_PORT8000Server port
STATS_COMPASS_SERVER_URLhttp://localhost:8000Base URL for upload/download links
STATS_COMPASS_MAX_UPLOAD_MB50Max upload size

Development

See CONTRIBUTING.md for development setup.

🙏 Credits

Landing page template by ArtleSa (u/ArtleSa)

License

MIT