upload_fileLABSCO SUMMARY
The preprocessing steps are separate tools, which is why it works.
Splitting "look at the columns", "check for categoricals" and "encode them" into distinct calls means the assistant has to inspect the data before it trains, and you can see each decision. Scope is exactly one model type and one metric — linear regression, RMSE — so treat it as a teaching and quick-exploration tool rather than a modelling stack.
What it is
An MCP server that gives an assistant the five steps of a linear-regression workflow as separate tools. You hand it a CSV path; it can then tell you what columns exist, whether any are categorical, encode those to numbers, and train a model against the target column you name, returning the RMSE. Each step is its own call, so the model decides the order and you see what it did.
What you get
- A CSV taken in by absolute path and held for the rest of the session —
upload_file - The column names of the loaded dataset, so the assistant is not guessing at the schema —
get_columns_info - A check for categorical columns before anything numeric is attempted —
check_category_columns - Those columns label-encoded into numeric values in place —
label_encode_categorical_columns - A linear regression trained against a target column you name, answered with the RMSE —
train_linear_regression_model
Requirements
No account and no key; everything runs locally against a file you point at. Clone the repository, install uv, run uv sync, then register it in claude_desktop_config.json with absolute paths to both the uv binary and the project directory, running server.py. The CSV path passed to the upload tool must also be absolute.
Setup effort
Build from source — git clone https://github.com/HeetVekariya/Linear-Regression-MCP
USE CASES
Getting a first model off a CSV you just received
Load the file, read the columns back, and train against the target — three calls from raw file to an error figure.
Handling a dataset with text columns
Check which columns are categorical, label-encode them, and only then train, instead of failing partway through fitting.
Showing someone what the model-training loop actually is
Let the assistant narrate each step as it calls it — inspect, clean, train, evaluate — with the RMSE at the end as the only score.
5 tools
Listed in project docs. Your client may show a different list.
get_columns_infocheck_category_columnslabel_encode_categorical_columnstrain_linear_regression_modelBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/HeetVekariya/Linear-Regression-MCP
cd Linear-Regression-MCP
uv syncMCP Clients
Claude Desktop
{
"mcpServers": {
"linear-regression": {
"command": "<YOUR_PATH_TO_LOCAL>/bin/uv",
"args": [
"--directory",
"<YOUR_PATH_TO_LINEAR_REGRESSION_REPO>",
"run",
"server.py"
]
}
}
}