The read-only view of the live schema — sizes, indexes, row counts — which is what an honest migration plan is written against.
Database changes
Tools to prepare database changes and review their effects before rollout.
Built for: Whoever has to add a column to a table that is too large to lock, and would like the rollback written at the same time.
The button opens the checkout, where the 4 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
Open a Neon branch, run the migration there, and throw the branch away when the answer is no.
- 02
Read the current schema and row counts against a read-only Postgres connection before proposing an index.
- 03
Check the migration against zero-downtime rules — the lock it takes, the backfill it needs, the rollback it must have.
- 04
Read a CSV, Parquet or SQLite file with DuckDB when the change starts as a one-off load rather than as a schema edit.
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.
Neon's own server manages branches and runs migrations on them, so the rehearsal happens on a copy that can be deleted.
Shows which saved questions read the table you are about to change, which is the report that breaks the morning after a rename.
The migration is a merge request like any other, and this is where it lands for review.
The general rules: expand-then-contract, backfill in batches, and a rollback written at the same time as the change.
Index design, partial and partitioned indexes, and EXPLAIN ANALYZE as the proof rather than the intuition.
Django migration rules written for a large storefront — the concrete version of don't lock the table, for teams on that stack.
Reads CSV, Parquet, Excel or SQLite in place, which is how most one-off loads start before they become a schema change.
A worked set of conventions for authoring migrations in a real repository, useful as the template when yours has none written down.
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 |
|---|---|---|
| Database Postgres | Free | — |
| Neon | Free | — |
| Metabase | Free | — |
| GitLab | Free | — |
| Skills | ||
| Database Migration Patterns | Free · context cost only | — |
| Postgresql Indexing | Free · context cost only | — |
| Saleor Migrations | Free · context cost only | — |
| DuckDB Read File | Free · context cost only | — |
| n8n Migration Guidelines | 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: 4 servers and 5 skills, and all 100 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 schema-change writes all 4 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 05–09.
- 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- Metabase
METABASE_URL— URL of your Metabase instanceMETABASE_API_KEY— Metabase API key (Admin → Settings → Authentication → API keys)- GitLab
GITLAB_PERSONAL_ACCESS_TOKEN— GitLab personal access token for local stdio use
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 · 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
# 02 · Neon
claude mcp add --scope user --transport http neon-neon-mcp https://mcp.neon.tech/mcp
# 03 · Metabase
claude mcp add --scope user --env 'METABASE_URL=${METABASE_URL}' --env 'METABASE_API_KEY=${METABASE_API_KEY}' --transport stdio metabase-mcp '--' npx -y @cognitionai/metabase-mcp-server
# 04 · GitLab
claude mcp add --scope user --env 'GITLAB_PERSONAL_ACCESS_TOKEN=${GITLAB_PERSONAL_ACCESS_TOKEN}' --transport stdio zereight-gitlab-mcp '--' npx -y @zereight/mcp-gitlab
# 05 · Database Migration Patterns
npx mcprush@latest skill add agenticweb/database-migration-patterns
# 06 · Postgresql Indexing
npx mcprush@latest skill add prowler-cloud/postgresql-indexing
# 07 · Saleor Migrations
npx mcprush@latest skill add saleor/saleor-migrations
# 08 · DuckDB Read File
npx mcprush@latest skill add duckdb/duckdb-read-file
# 09 · n8n Migration Guidelines
npx mcprush@latest skill add n8n-io/n8n-migration-guidelinesRequirements 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.
- 1 member has not declared what credential it needs — check each one’s own page before you start.
- What this stack can write is not recorded — 2 members of 4 have no imported tool surface. Section 05 says what is known before you approve anything.
- 4 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 |
|---|---|---|
| Metabase | imported | 39 |
| Neon | imported | 7 |
| Database Postgres | not imported | not recorded |
| GitLab | 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 2 members of 4 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.
A team whose Postgres is a Supabase project works against it through Supabase's own server, and gives up the disposable branch that made the rehearsal free.
A team without a BI tool still needs somewhere to put the before-and-after counts; the Sheets server takes them, with pivots and charts, at no licence cost.
Where this stack stops
Written by the maintainer, kept on the page rather than in a support thread.
It cannot run a migration against production. The branch is where this desk works; promoting it is a human action with a human's credentials.
The Postgres member is read-only by design, so it can measure a table and never alter one.
It does not own your deployment order. A migration that must land before the code, or after it, is a release decision this stack can describe but not sequence.
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.
Security and access review desk
Reviews the code, the identities and the exposure of one service, and writes down what it found rather than a score.
Product analytics desk
Answers the funnel question with the query it ran, the caveat attached, and the readout already written.