datadiffer MCP server
io.github.gauthierpiarrette/datadiffer·v0.1.0Read-only table diffs with segment attribution: which slice of your data changed.
0 stars22 downloads/wk
Reviews
Write oneNobody has reviewed datadiffer yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
datadiffer tools (4)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
diff_summaryCheap, counts-only preflight: row counts, key uniqueness, schema-change summary, and whether a full diff fits within caps. Run this before diff_tables on unfamiliar tables.
diff_tablesEXPENSIVE: full semantic diff — may scan both tables end to end. Returns rows added/removed/modified, per-column change rates, segment attribution, and samples. Runs the diff_summary preflight internally and refuses with a remedy if caps would be exceeded.
list_connectionsList configured warehouse connections (names only — credentials never pass through tools). Cheap.
schema_diffCompare two tables' schemas only (columns added/removed/retyped). Metadata-only, always cheap.
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan22 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 58 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How datadiffer compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 75% of 48,255 servers
- Tools
- 4
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 22
- more than 8% of 12,191 servers with a package
What its tools let an agent do: 4 read
Install datadiffer in Claude Code, Cursor or VS Code
claude mcp add datadiffer -- uvx datadiffer
What the publisher says
From the datadiffer repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.gauthierpiarrette/datadiffer -->
datadiffer
Diff two tables. See what changed, and which slice of your data it's concentrated in.
98.6% of modified rows have country = 'DE' (8.87x over-represented)datadiffer compares two tables (dev vs. prod, PR vs. main, source vs. destination) and tells you what changed and where it's concentrated: rows added / removed / modified, per-column change rates, and segment attribution.
Built for the era when agents write your pipelines and someone has to check their work. A maintained, MIT-licensed successor to the archived data-diff.
Try it in 60 seconds
No credentials, no config, no account. It generates its own data:
uvx datadiffer demodatadiffer-demo/orders_prod.parquet vs datadiffer-demo/orders_dev.parquet
key: order_id (inferred from *_id naming)
rows: +800 added -250 removed ~432 modified 49318 unchanged
┏━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃column ┃ changed rows ┃ % of matched┃
┡━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│amount │ 432 │ 0.87%│
└───────┴──────────────┴─────────────┘
-> 98.6% of modified rows have country = 'DE' (8.87x over-represented)
93.2% of added rows have plan = NULL (63.19x over-represented)
sample changes:
[order_id=0] amount: 5.0 -> 7.1
[order_id=1] amount: 6.37 -> 6.38
[order_id=117] amount: 32.4 -> 34.5
[order_id=234] amount: 59.8 -> 61.9
[order_id=351] amount: 87.2 -> 89.3
DIFF FOUNDThat last block is the point. A diff tells you 432 rows changed; datadiffer tells you they're almost all German orders, which is the difference between "something moved" and "the VAT change landed."
Install
pip install datadiffer # local files: Parquet, CSV, DuckDB
pip install 'datadiffer[snowflake]' # + Snowflake
pip install 'datadiffer[postgres]' # + Postgres
pip install 'datadiffer[mcp]' # + MCP server for AI agentsUse it
# local files
datadiffer diff prod.parquet dev.parquet
# DuckDB
datadiffer diff prod.duckdb:orders dev.duckdb:orders
# Postgres (attached read-only)
datadiffer diff orders orders_v2 --source "postgresql://user@host:5432/db"
# Snowflake, or anything in datadiffer.toml (run `datadiffer init` first)
datadiffer diff wh::analytics.orders wh::analytics_dev.orders
# cross-source: warehouse vs. a local file
datadiffer diff wh::orders orders_snapshot.parquet
# machine-readable, for scripts and CI
datadiffer diff a.parquet b.parquet --format jsonExit codes follow the GNU diff convention: 0 no differences, 1 differences found, 2 operational error.
Useful flags: --key (inferred when omitted), --where, --columns / --exclude-columns, --sample-limit, --no-attribution, -q.
In your pull requests
datadiffer-action posts the report as a sticky PR comment:
### datadiffer: ANALYTICS.ORDERS vs ANALYTICSPR482.ORDERS: differences found ❌
+800 added · −250 removed · ~432 modified · 49,318 unchanged (2.96% of base rows affected)
Policy: max-changed-rows-pct exceeded: 2.96% > 0.5%
| Column | Changed rows | % of matched |
|---|---:|---:|
| amount | 432 | 0.87% |
> Where it's concentrated: 98.6% of modified rows have country = 'DE' (8.87× over-represented)
> 93.2% of added rows have plan = NULL (63.19× over-represented)
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
datadiffer: common questions
- Is datadiffer MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the datadiffer safety report
- How do I install datadiffer?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does datadiffer need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is datadiffer maintained?
- The last commit was 99 days ago (2026-07-28). The latest release is v0.1.0.
- How does datadiffer compare with other MCP servers?
- safety score 88/100 (higher than 75% of 48,255 servers); tools 4 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.