GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Checks TypeORM migrations for data loss, table locks, and deploy problems before they run.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"orm-preflight": {
"command": "npx",
"args": [
"-y",
"orm-preflight",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add orm-preflight -- npx -y orm-preflight mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"orm-preflight": {
"command": "npx",
"args": [
"-y",
"orm-preflight",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"orm-preflight": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"orm-preflight",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account sikandar100, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.2.0) reached the registry 22 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Preflight safety checks for TypeORM migrations: catch data loss and locking before you merge.
Documentation: https://sikandar100.github.io/orm-preflight/
Changing a column's length in TypeORM can delete all of its data. When a column's type or length changes, TypeORM's migration generator drops the column and adds it again (typeorm/typeorm#3357). The migration looks harmless in review and passes every test on an empty database. orm-preflight catches that, and other migrations that lose data, lock busy tables, or break a rolling deploy, before you merge.
src/migrations/1727100000000-WidenUserName.ts
7:30 error no-drop-and-recreate-column "users"."name" is dropped and re-added in the same migration. Every existing value in this column will be lost. Why: TypeORM drops and re-adds a column when its type or length changes, instead of changing it in place. The new column starts empty. Safe: Change the type in place: ALTER TABLE "users" ALTER COLUMN "name" TYPE varchar(255). Widening a varchar, or changing varchar to text, does not rewrite the table. ... Docs: https://github.com/sikandar100/orm-preflight/blob/main/docs/rules/no-drop-and-recreate-column.md
8:30 error no-add-not-null-without-default "users"."name" is added as NOT NULL without a default. The migration fails as soon as "users" has any rows. ...
2 errors, 0 warnings in 1 migration
npm install --save-dev orm-preflight
npx orm-preflight "src/migrations/*.ts"
Node.js 20 or newer. Without arguments, orm-preflight checks the migrations globs from its config, or every migrations folder in the project.
To start on an existing project without fixing its history, run npx orm-preflight init first (see Adopting on an existing project).
| Rule | Reports |
|---|---|
| Data loss | |
no-drop-and-recreate-column | A column dropped and added again in one migration |
possible-rename-data-loss | One column dropped and another added, with no data copied (warning) |
no-drop-column | A dropped column |
no-drop-table | A dropped table |
no-truncate | TRUNCATE or clearTable() |
no-truncating-type-change | A type change whose USING keeps only part of each value, such as left() (warning) |
no-delete-rows | A DELETE on an existing table (warning) |
no-null-out-column | An UPDATE that only clears columns, setting them to NULL (warning) |
rewrites-existing-rows | Every UPDATE, upsert, or INSERT ... SELECT on an existing table, for review (info) |
typeorm/no-changecolumn-recreate | changeColumn() that drops and re-adds the column |
| Deploy safety | |
no-rename-column | A renamed column |
no-rename-table | A renamed table |
| Locking (PostgreSQL) | |
require-concurrent-index | CREATE INDEX without CONCURRENTLY |
concurrent-index-transaction | CONCURRENTLY where it runs inside a transaction |
no-add-not-null-without-default | A NOT NULL column added without a default |
no-volatile-default | A column added with a volatile default, or as serial, identity, or generated |
no-unsafe-column-type-change | A column type change that rewrites the table |
require-not-valid-foreign-key | A foreign key added without NOT VALID |
no-set-not-null | SET NOT NULL on an existing column |
require-not-valid-check | A CHECK constraint added without NOT VALID |
validate-in-same-transaction | VALIDATE CONSTRAINT in the same transaction as its NOT VALID add, where it gains nothing (warning) |
require-concurrent-unique | A unique constraint or primary key added in place |
require-concurrent-index-drop | DROP INDEX without CONCURRENTLY (warning) |
no-blocking-maintenance | VACUUM FULL, CLUSTER, or REINDEX without CONCURRENTLY |
enum-value-used-in-same-transaction | A new enum value used before the transaction that adds it commits |
require-lock-timeout | A change to an existing table without lock_timeout (off, opt-in) |
typeorm/no-enum-recreate | TypeORM 0.3's enum change by recreating the type (warning) |
| Correctness | |
typeorm/transaction-override-forbidden | transaction set on a migration in transaction mode "all" |
typeorm/invalid-migration-name | A migration name without a 13-digit timestamp |
unanalyzable-statement | A statement orm-preflight could not read (warning) |
| [invalid-suppression](https://github.com/sikandar100/orm-preflight/blob/main/docs/rules
Only the beginning is shown; read the rest in the repo