The Hugging Face side of the desk: models, datasets and the jobs that run against them.
Data and ML desk
Gets the data out, trains or fine-tunes the model, and evaluates it before anybody calls it an improvement.
Built for: The data scientist who spends more of the week moving files than modelling, and has no evaluation harness.
The button opens the checkout, where the 6 servers and 5 skills are listed one by one. Every member is free, so the checkout lists them and asks for no card.
What your agent can do with this
The reason to buy a stack rather than five listings: each line below needs more than one member connected at the same time.
- 01
Load a CSV or an Excel file, profile the columns and say what is missing before any modelling starts.
- 02
Query Snowflake read-only, and read the files that never made it into the warehouse from Drive.
- 03
Fine-tune a language or vision model through Hugging Face infrastructure, with the training recipe written down.
- 04
Evaluate an agent or a prompt against a defined harness instead of a demo that happened to work.
The assembly, part by part
What each part contributes, and why it was picked over the obvious alternative. Prices and permissions are read from the listings, so nothing here can disagree with the catalogue.
Read-only access to the production database for the features that only exist in the application's own tables.
Warehouse queries with key-pair or SSO authentication and no write path, which is the right shape for exploratory work.
The spreadsheets and exports colleagues send instead of loading, searched and read where they already are. The server can also edit and share them unless it is signed in read-only, as the setup below says.
A baseline to measure against: the hosted model the fine-tune has to beat to be worth its cost.
Statistical analysis and preprocessing over Excel and CSV files, for the preparation work that happens before a notebook.
Keeps the analysis in pandas, matplotlib and seaborn the way the rest of the field writes it, so the notebook is readable by the next person.
Training and fine-tuning through TRL or Unsloth on Hugging Face Jobs, with the recipe recorded rather than remembered.
The evaluation harness for agents and LLM applications, which is the difference between an improvement and an impression.
A worked example of querying a real personal dataset — an Apple Health SQLite database — in Markdown, JSON or FHIR.
Turns an arXiv paper into a minimal citation-anchored implementation, which is how a method gets tested instead of cited.
What it costs, and on what assumption
Every member is free, so the monthly figure is $0 whatever you do with the stack: nothing here is billed by the call, and only adding a paid member could change it.
| Part | What you are paying for | Monthly, as quoted |
|---|---|---|
| Hugging Face | Free | — |
| Database Postgres | Free | — |
| Snowflake Readonly | Free | — |
| Google Drive | Free | — |
| Openai | Free | — |
| Excel Csv | Free | — |
| Skills | ||
| Data Analysis in Jupyter | Free · context cost only | — |
| Hugging Face LLM Trainer | Free · context cost only | — |
| DeepEval | Free · context cost only | — |
| Health Data | Free · context cost only | — |
| Paper2Code | Free · context cost only | — |
| Everything above | $0 of servers plus $0 of skills, the same in a quiet month and a busy one | $0/mo |
Subscriptions at their monthly plan price; one-off licences spread over 12 months.
Install only these and the bill is nothing: 6 servers and 5 skills, and all 43 tools.
Nothing in this stack carries a call allowance, so nothing here can run out before the month does. The bill is decided when you install it, not when you use it.
The spend cap is one figure for the whole account, set in your dashboard and checked when an order is placed. On the call path what stops a retry loop is the plan's call allowance and its rate limit, and a refused call is never billed.
Setting it up, in order
The steps below come before the install lines: what to decide and scope before connecting anything, in the order it matters. The lines themselves follow, part by part, for the client you pick.
npx mcprush@latest stack add ml-desk writes all 6 servers into Claude Code’s config in one go — or run the lines below one by one. The 5 skills are not included — add them with lines 07–11.
- Database Postgres
POSTGRES_HOST— Database hostPOSTGRES_USER— Database user (a read-only user is recommended)POSTGRES_PASSWORD— Database password (or use POSTGRES_PASSWORD_FILE)POSTGRES_DATABASE— Database name- Snowflake Readonly
SNOWFLAKE_ACCOUNT— Account identifier, e.g. xy12345.us-east-1SNOWFLAKE_USERNAME— Snowflake user nameSNOWFLAKE_WAREHOUSE— Warehouse to run queries inSNOWFLAKE_ROLE— Role to use (a read-only role is recommended)- Google Drive
GOOGLE_DRIVE_OAUTH_CREDENTIALS— Path to a Google OAuth 2.0 Desktop app credentials JSON file- Openai
OPENAI_API_KEY— Your OpenAI API key
Set them where you start Claude Code — export POSTGRES_HOST=… in your shell profile on macOS and Linux, setx POSTGRES_HOST "…" on Windows, then open a new terminal. Claude Code reads them at start; the config keeps only the names.
# 01 · Hugging Face
claude mcp add --scope user --transport http huggingface-hugging-face-mcp 'https://huggingface.co/mcp?login'
# 02 · Database Postgres
claude mcp add --scope user --env 'POSTGRES_HOST=${POSTGRES_HOST}' --env 'POSTGRES_USER=${POSTGRES_USER}' --env 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}' --env 'POSTGRES_DATABASE=${POSTGRES_DATABASE}' --transport stdio database-postgres-mcp '--' npx -y @database-mcp/postgres
# 03 · Snowflake Readonly
claude mcp add --scope user --env 'SNOWFLAKE_ACCOUNT=${SNOWFLAKE_ACCOUNT}' --env 'SNOWFLAKE_USERNAME=${SNOWFLAKE_USERNAME}' --env 'SNOWFLAKE_WAREHOUSE=${SNOWFLAKE_WAREHOUSE}' --env 'SNOWFLAKE_ROLE=${SNOWFLAKE_ROLE}' --transport stdio snowflake-readonly-mcp '--' npx -y snowflake-readonly-mcp
# 04 · Google Drive
claude mcp add --scope user --env 'GOOGLE_DRIVE_OAUTH_CREDENTIALS=${GOOGLE_DRIVE_OAUTH_CREDENTIALS}' --transport stdio piotr-agier-google-drive-mcp '--' npx -y @piotr-agier/google-drive-mcp
# 05 · Openai
claude mcp add --scope user --env 'OPENAI_API_KEY=${OPENAI_API_KEY}' --transport stdio openai-mcp '--' npx -y @mzxrai/mcp-openai
# 06 · Excel Csv
claude mcp add --scope user excel-csv-mcp '--' npx -y excel-csv-mcp-server
# 07 · Data Analysis in Jupyter
npx mcprush@latest skill add mindrally/data-analysis-in-jupyter
# 08 · Hugging Face LLM Trainer
npx mcprush@latest skill add huggingface/hugging-face-llm-trainer
# 09 · DeepEval
npx mcprush@latest skill add confident-ai/deepeval
# 10 · Health Data
npx mcprush@latest skill add glebis/health-data
# 11 · Paper2Code
npx mcprush@latest skill add prathamlearnstocode/paper2codeRequirements and Windows tips
- Node.js — the current LTS (24) is the safe choice (for
npx). - Windows PowerShell says 'running scripts is disabled on this system'? Run
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedonce, or typenpx.cmdinstead ofnpx(codex.cmd,gemini.cmd,grok.cmdlikewise). PowerShell 7 needs neither.
Nothing is connected until you approve it in Claude Code. mcprush is not in the path and meters nothing here.
- 1 member authorises over OAuth — you are sent to their consent screen once each.
- 2 members want an API key, set in your own client’s config on your machine — this marketplace never holds it.
- 3 members have not declared what credential they need — check each one’s own page before you start.
- What this stack can write is not recorded — 3 members of 6 have no imported tool surface. Section 05 says what is known before you approve anything.
- 6 members are connected straight from their own package or address — nothing in them goes through mcprush.
What the whole stack can reach
Installed together, these tool surfaces add up. It is the first thing a security reviewer asks for, so what has been counted — and what nobody has counted yet — is on the page rather than in a PDF.
| Member | Tool surface | Write tools |
|---|---|---|
| Excel Csv | imported | 3 |
| Snowflake Readonly | imported | 2 |
| Database Postgres | not imported | not recorded |
| Google Drive | not imported | not recorded |
| Hugging Face | not imported | not recorded |
A stack's blast radius is the union of its members, not the worst of them. That union cannot be taken here, because 3 members of 6 have no imported tool surface — so the figure a review asks for is missing rather than low, and a member marked not imported is one nobody has counted rather than one that cannot write.
Sensible swaps
A stack is a default, not a verdict. These are the substitutions the maintainer would make, and what each one costs or saves.
For a data lake on S3 rather than a warehouse: the same read-only querying, billed per scan instead of per credit.
Where this stack stops
Written by the maintainer, kept on the page rather than in a support thread.
It cannot deploy a model. Training and evaluation are here; serving is an infrastructure decision this stack does not make.
The warehouse connection is read-only. A feature table has to be built by whoever owns the pipeline.
It will not tell you a model is good. The evaluation gives numbers against a harness you defined; the threshold is yours.
Who keeps this current
A stack has an owner: whoever keeps it re-checks the combination when a member changes, and the members themselves are published by the people named on each row.
Stacks that share parts with this one
API delivery desk
Designs the endpoint, wires the auth and the payment, and reviews the shape before it is public and permanent.
Bug reproduction
Tools to investigate a bug report and work toward a reproducible test case.
Database changes
Tools to prepare database changes and review their effects before rollout.