BreezeML

MCP for AI agents

BreezeML ships a Model Context Protocol server so AI agents like Claude can train, compare, audit, report, and deploy models with sound statistical defaults. The design rule is simple: an agent must call report() and confirm a SHIP verdict before it deploys or exports anything.

Install & connect

pip install "breezeml[mcp]" 路 claude mcp add breezeml -- breezeml-mcp

Install the MCP extra, then register the breezeml-mcp server with your agent. The console script speaks stdio transport, so one line wires it into Claude Code. Once connected, the agent sees eleven tools: inspect_data, audit, train, compare, predict, explain, report, model_card, export, deploy, and save.

In plain English: Two commands wire BreezeML into an AI agent, which then sees a small set of safe tools for training and shipping models.

Exampleruns locally after pip install
pip install "breezeml[mcp]"

# register the server with Claude Code
claude mcp add breezeml -- breezeml-mcp

inspect_data 路 audit

inspect_data(csv_path, target) 路 audit(csv_path, target)

Look before you leap. inspect_data profiles a CSV (rows, features, missing values, class balance) and audit scans it for target leakage, ID columns, constants, duplicates, and label noise. Both return JSON so the agent can reason about whether the data is even worth training on.

In plain English: Lets the agent look before it leaps: profile the data and scan it for traps, all as JSON it can reason about.

Exampleruns locally after pip install
// tool: inspect_data
{ "csv_path": "churn.csv", "target": "churn" }

// result (abridged)
{ "rows": 7043, "features": 19, "missing": 0,
  "target": "churn", "classes": { "No": 5174, "Yes": 1869 } }

train

train(csv_path, target, task='auto')

Trains the auto-selected model and stores it in the session under a model_id the agent reuses for later calls. The result includes the task, the chosen estimator, the cross-validated report, and a plain-English list of every pipeline decision.

In plain English: The agent trains a model and gets back a handle plus a full account of what was decided.

Exampleruns locally after pip install
// tool: train
{ "csv_path": "churn.csv", "target": "churn" }

// result
{ "model_id": "model_1", "task": "classification",
  "estimator": "HistGradientBoostingClassifier",
  "report": { "f1": 0.81, "roc_auc": 0.86 },
  "decisions": ["detected classification from 2 classes", "..."] }

compare

compare(csv_path, target, task='auto')

Benchmarks every built-in model on the same cross-validation folds and returns a ranked leaderboard, so the agent picks a winner fairly instead of guessing an algorithm.

In plain English: The agent runs a fair race across models and gets a ranked board, so it picks a winner instead of guessing.

Exampleruns locally after pip install
// tool: compare
{ "csv_path": "churn.csv", "target": "churn" }

// result
{ "task": "classification",
  "leaderboard": [
    { "model": "hist_gradient_boosting", "f1": 0.81 },
    { "model": "random_forest", "f1": 0.79 },
    { "model": "logistic", "f1": 0.76 } ] }

report

report(model_id, csv_path, target='', sensitive='')

The gate. Runs the full honesty gauntlet on a trained model and returns a single SHIP, WARN, or STOP verdict with reasons. Agents are instructed to call this and confirm SHIP before they deploy or export. Pass a sensitive column to add a fairness check.

In plain English: The safety gate for agents: one call returns SHIP, WARN, or STOP, and a good agent must see SHIP before it ships.

Exampleruns locally after pip install
// tool: report
{ "model_id": "model_1", "csv_path": "churn.csv", "target": "churn" }

// result
{ "verdict": "SHIP", "target": "churn", "task": "classification",
  "reasons": [],
  "sections": { "performance": { "beats_baseline": true } } }

deploy 路 export 路 model_card 路 save

deploy(model_id, out_dir) 路 export(model_id, path) 路 model_card(model_id) 路 save(model_id, path)

The shipping tools. deploy writes a complete FastAPI plus Docker serving directory, export writes a standalone scikit-learn script, model_card writes a Markdown governance doc, and save persists the model to a .joblib file. An honest agent only reaches for these after report returns SHIP.

In plain English: The shipping tools, which a well-behaved agent only touches after the report says SHIP.

Exampleruns locally after pip install
// tool: deploy (only after a SHIP verdict)
{ "model_id": "model_1", "out_dir": "api/" }

// result
"Serving app written to api/ (run: cd api/ && pip install -r requirements.txt && uvicorn app:app)"

A safe agent flow

inspect_data -> compare -> train -> report -> confirm SHIP -> deploy

The whole point: the server nudges agents toward a sound workflow. Inspect the data, compare models, train the winner, then run report. Only if the verdict is SHIP does the agent deploy. A WARN or STOP stops the line and the agent reports back instead of shipping a broken model.

In plain English: The intended habit: look, compare, train, check, and deploy only on a clean bill of health.

Exampleruns locally after pip install
Agent: inspect_data(churn.csv, churn)   -> looks clean, 2 classes
Agent: compare(churn.csv, churn)        -> hist_gradient_boosting wins
Agent: train(churn.csv, churn)          -> model_1, f1 0.81
Agent: report(model_1, churn.csv, churn)-> verdict SHIP
Agent: SHIP confirmed, proceeding.
Agent: deploy(model_1, api/)            -> FastAPI app written

All sections