by MarkIvor
Self-hosted tabular ML that doesn't lie. Leakage Guard, conformal intervals, profit-optimized thresholds, counterfactuals & instant REST/MCP API.
# Add to your Claude Code skills
git clone https://github.com/MarkIvor/predictorlabGuides for using mcp servers skills like predictorlab.
See how predictorlab compares with popular alternatives.
predictorlab is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by MarkIvor. Self-hosted tabular ML that doesn't lie. Leakage Guard, conformal intervals, profit-optimized thresholds, counterfactuals & instant REST/MCP API. It has 67 GitHub stars.
predictorlab's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/MarkIvor/predictorlab" and add it to your Claude Code skills directory (see the Installation section above).
predictorlab is primarily written in Python. It is open-source under MarkIvor on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh predictorlab against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
English | Русский
Upload your data. Say what you want to predict. Get an honest model with a confidence interval, a profit-optimized threshold, and a REST API — in 5 minutes.
PredictorLab is self-hosted tabular ML for analysts who need ML but don't have a DS team. You know your data, you know your business costs — PredictorLab handles the ML: catches leakage, splits correctly, calibrates probabilities, and converts them into decisions in rubles.
Spoiler: the model that shows 99% accuracy on your first upload is almost certainly broken. This tool will tell you exactly why — and fix it for you.

| You are | You have | PredictorLab gives you |
|---|---|---|
| Analyst / product manager | A CSV with historical outcomes, business intuition about costs | A working ML model without learning scikit-learn. The tool asks the right questions (What's a false negative worth? Which features can you actually change?) and turns answers into a decision system |
| Consultant / data engineer | Clients with data, no time to hand-hold | A self-hosted tool you can deploy for a client in 5 minutes, share a prediction form, and hand over an API. No SaaS dependency, no data leaving the client's server |
| Solo DS practitioner | ML knowledge, but no time to build the full pipeline | The boring parts are done: out-of-time splits, conformal intervals, calibration, monitoring, versioning. You focus on features and business logic |
What you need: a dataset with a labeled outcome column, and rough numbers for what a correct prediction earns vs what a wrong one costs. That's it.
What you don't need: Python, scikit-learn, or a DS degree. But if you have them — the REST API and MCP server give you full programmatic control.
I've watched this scenario play out dozens of times:
The 0.98 was never real. The dataset had a cancel_date column — filled in only after a customer
had already churned. The model learned to read the future, not to predict it. Mass-market no-code
tools don't block on this — at best they show a yellow warning that nobody clicks.
Enterprise tools like DataRobot do detect leakage, but they cost $$$ and require an implementation team.
The second problem is even more insidious: even with a "good" model, business people get probabilities — not decisions. "This customer has a 73% churn probability." Great. What do I do with that? Call them? Offer a discount? The tool never says, because the tool doesn't know what a phone call costs or what a saved customer is worth.
PredictorLab solves both — in the gap between "too simple to trust" and "too expensive to buy":
| Problem | Mass-market no-code tools | Enterprise (DataRobot) | PredictorLab |
|---|---|---|---|
| Target leakage | Yellow warning icon (nobody clicks) | Detects it, requires setup | BLOCK verdict with explanation in plain language + one-click "Exclude and retrain" |
| Random split on time-series data | Random split → contamination | Configurable, manual setup | Automatic out-of-time split when a date column exists |
| Bare probability, no uncertainty | "73% churn" (and then what?) | Confidence intervals (model-specific) | Conformal interval with coverage guarantee + OOD flag |
| Threshold at 0.5 or by F1 | "Here's your AUC" | Configurable, manual tuning | Cost matrix → profit-maximizing threshold: "At 0.27, treating top-500 customers nets +84,000₽/month" |
| No actionable next step | SHAP values in a chart | Good, but $$$ | Counterfactuals: "Reduce discount by 5% → probability drops 0.81→0.31, ROI: 21,400₽" |
| Dead model after training | One-and-done | Built-in monitoring | PSI drift + live metrics + webhooks + one-click retrain |
| Price | $99/mo SaaS, data leaves your server | $50k+/year, needs a team | MIT, self-hosted, Docker |
Leakage Guard in action — the killer feature. Upload the leaky demo dataset, and the system doesn't just warn — it refuses to show results and tells you what to do:

The "What does this mean?" block explains AUC, lift, and conformal coverage in business terms — not jargon.
Training panel — real-time SSE progress, 7 stages with descriptions, live leaderboard, elapsed/remaining time:

Profit optimization — the threshold is set where your money is maximized, not where F1 looks pretty:

Sharing predictions — three ways, each one click. Web form for non-technical users, API key for developers, batch for processing your entire customer base:

Single prediction — probability, conformal interval, reasons in plain language, OOD flag:

Model Card — auto-generated with leakage report, assumptions, limitations. Exportable to Markdown and PDF:

┌────────────────── Web Interface ──────────────────┐
│ React UI ←SSE→ FastAPI + asyncio jobs + ProcessPool │
│ │ │
│ │ ┌─────── REST API :8000 ────────┐ │
│ │ │ /api/v1/models/{id}/predict │ │
│ │ │ /api/v1/models/{id}/whatif │ │
│ │ │ /api/v1/jobs/{id} │ │
│ │ └───────────────────────────────┘ │
│ │ │
│ │ ┌─────── MCP Server :8100 ──────┐ │
│ │ │ predict, explain, what_if, │ │
│ │ │ counterfactual, model_card │ │
│ │ └───────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─── Core Pipeline ──────────────────────────┐ │
│ │ │ │
│ │ CSV/XLSX/Parquet ← PII scanner │ │
│ │ ↓ │ │
│ │ Feature Builder (point-in-time SQL) │ │
│ │ ↓ │ │
│ │ Leakage Guard (9 deterministic checks) │ │
│ │ ↓ │ │
│ │ Splits (OOT / group / stratified) │ │
│ │ ↓ │ │
│ │ Training (CatBoost + LightGBM + Optuna) │ │
│ │ ↓ │ │
│ │ Calibration + Conformal + OOD + SHAP │ │
│ │ ↓ │ │
│ │ Profit → Threshold → Counterfactuals │ │
│ │ ↓ │ │
│ │ Monitoring (PSI drift + live metrics) │ │
│ │ │ │
│ └────────────────────────────────────────────┘ │
│ │
│ DuckDB (data) · SQLite (metadata) · joblib │
│ PostgreSQL / MySQL / ClickHouse / SQLite (RO) │
└────────────────────────────────────────────────────┘
The demo-data/b2b_leaky.csv dataset contains a deliberate trap:
cancel_date is filled only for customers who already churned. Here's what happens:
Leakage Guard — Verdict: BLOCK
[x] cancel_date almost perfectly predicts the target (AUC 0.998).
Value appears to be known only after the event has occurred.
[x] final_status: column name resembles a post-event feature.
[x] cancel_date contains dates after the event time (100% of