DataSentry

io.github.JackxiaozhirenPublished by GitHub account Jackxiaozhirenv2.0.0Updated Oct 26, 2026

Local-first MCP server for data-quality discovery, evidence, drift, and controlled repair.

VerifiedSTDIODesktop onlyDatabasesData & Analytics

Overview

AI-generated overview

Local-first MCP server that lets an assistant scan data for quality issues, inspect evidence, compare drift, and propose reversible repairs.

What you can do
  • Scan files, databases and cloud objects for data-quality issues and read evidence-backed findings with samples, counts and confidence
  • Read six-dimension quality scores, history and drift comparisons across schema, row counts and issue distribution
  • Validate data contracts and manage scheduled scan jobs
  • Propose, preview, apply to a copy, verify and roll back repairs without overwriting the source
When to use it
Useful when you have data you do not fully trust yet and want automatic issue discovery with evidence before writing permanent rules, or when you want an assistant to run a conservative, reversible detect-fix-verify loop over CSV, Parquet, JSONL, XLSX, DuckDB, SQLite, PostgreSQL, MySQL or S3/GCS/Azure objects.
Requirements
Runs as a local stdio process, installed from PyPI as datasentry-ai and started with uvx or the datasentry mcp command pointed at a project path. No API key, cloud service or LLM is required; deterministic detection runs locally on DuckDB. OpenAI or Ollama assistance is optional.
Before you install
Repair tools change data, though the workflow applies changes to a copy and keeps the original file intact; review previews and diffs before applying, and use rollback if needed. AI-generated repair proposals are meant to stay human-approved. If optional LLM assistance is enabled, data may be sent to OpenAI or Ollama, with PII redaction and audit records available.

Installation

In SourceWeft

  1. Open DataSentry in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[DataSentry]

DataSentry

Find bad data before your users do.
Automatic data-quality discovery, evidence-backed explanations, and safe reversible repair.
Local-first. Deterministic by default. AI optional.

Live demo · 30-second start · Use cases · FAQ · PyPI · Examples · MCP setup · Contribute

[Release] [PyPI] [Python] [CI] [License]

[DataSentry scans dirty data, explains evidence, and starts a safe repair loop]

中文导读:DataSentry 会先自动发现数据质量问题,再给出样本、比例、置信度等证据。修复采用 propose → preview → apply to a copy → verify → rollback 的保守流程。检测与评分不依赖 LLM,AI 只作为可选辅助,数据可以完全留在本机。

Try it in 30 seconds

Install the current PyPI release and run the zero-config product tour:

bash
pip install --upgrade datasentry-aidatasentry demo

datasentry-demo is also available as a direct console alias.

The demo generates synthetic dirty data, runs the built-in detectors, exports JSON + HTML reports, applies one safe repair to a copy, re-scans the repaired copy, and prints a rollback command. It needs no dataset, cloud service, API key, or LLM.

text
synthetic dirty CSV        ↓39 deterministic detectors        ↓evidence-backed issues + quality score        ↓preview → repaired copy        ↓re-scan → verify new/persistent issues

Prefer scanning your own data immediately?

bash
curl -L https://raw.githubusercontent.com/Jackxiaozhiren/datasentry/main/demo-data/orders.csv -o orders.csvdatasentry scan orders.csvdatasentry issues list --severity high

Or launch the interactive interfaces:

bash
datasentry          # terminal UIdatasentry-server   # Web UI + REST API at http://localhost:8000/ui/

Start with your problem

If you need to...Start here
Find suspicious data before you know every ruledatasentry scan data.csv
See the full discovery → repair → verify loopdatasentry demo
Block severe data issues in CIdocs/GITHUB_ACTIONS.md
Add quality gates to dbt / Airflowexamples/integrations/
Inspect and repair issues without overwriting the sourceSafe repair
Give AI agents deterministic data-quality toolsdocs/MCP.md

The default path is intentionally low-commitment: scan first, inspect evidence, then decide whether a finding deserves a permanent rule or a repair.

Why DataSentry exists

Most data-quality tools are excellent once you already know the expectations, checks, or contracts you want to enforce. Real incidents often start one step earlier: you do not yet know what is wrong.

DataSentry is built around the complete remediation loop:

text
Find → Explain → Fix safely → Verify
  • Find — discover common quality problems without writing every rule first.
  • Explain — attach samples, affected counts/ratios, detector evidence, and confidence.
  • Fix safely — preview changes and apply repairs to a copy instead of mutating the source.
  • Verify — re-scan the repaired copy and surface persistent or newly introduced issues.

DataSentry fits best when you are looking at data you do not fully trust yet, want evidence before codifying checks, or need a conservative remediation path. It complements expectation- and contract-driven tools rather than requiring you to replace them.

What it catches automatically

DataSentry ships with 39 deterministic detectors covering common failure modes such as:

  • missing and placeholder values;
  • invalid emails, URLs, dates, and encodings;
  • duplicate identifiers and uniqueness violations;
  • inconsistent categories and cross-field contradictions;
  • foreign-key and referential-integrity problems;
  • numeric and statistical outliers;
  • schema, row-count, score, and issue-distribution drift.

Every scan produces an evidence-backed issue list and a six-dimension quality score across completeness, validity, uniqueness, consistency, integrity, and timeliness.

Safe repair, not blind mutation

bash
# inspect the highest-severity findingsdatasentry issues list --severity high
# propose a repair without changing datadatasentry repair propose <issue_id> --file orders.csv
# preview the exact effectdatasentry repair preview <issue_id> --file orders.csv
# apply to a repaired copy; the original is not overwrittendatasentry repair apply <issue_id> --file orders.csv
# re-scan the repaired copy and detect regressionsdatasentry repair verify <run_id>
# inspect or undo the repairdatasentry repair diff <run_id>datasentry repair rollback <run_id>

Repairs are fingerprinted, auditable, and reversible. AI-generated repair proposals remain human-approved state changes.

Quality gates for CI

bash
datasentry scan orders.csv --fail-on high

For GitHub repositories, reuse DataSentry's maintained workflow_call gate instead of duplicating installation and exit-code handling:

yaml
jobs:  datasentry:    uses: Jackxiaozhiren/datasentry/.github/workflows/datasentry-quality-gate.yml@main    with:      path: data/orders.csv      fail_on: high

See docs/GITHUB_ACTIONS.md for inputs, artifacts, security boundaries, and version-pinning guidance.

Reports can be exported as JSON, Markdown, HTML, JUnit, and SARIF. The versioned, machine-readable JSON report Schema is included for downstream validation. The GitHub Actions example fails the workflow on severe findings while still uploading an HTML report for review.

Give AI agents deterministic data-quality tools

DataSentry includes an MCP stdio server:

bash
datasentry mcp --project /path/to/project

MCP-capable clients can scan files, inspect evidence-backed issues, read quality scores and trends, compare drift, validate contracts, manage scheduled jobs, and call DataSentry tools without bypassing the same underlying safety rules used by the CLI and REST API.

Copy-paste setup recipes for VS Code and Claude Desktop are in docs/MCP.md.

Boundary: AI may propose; humans approve state-changing repairs.

Where it fits next to popular data-quality projects

This is a positioning guide, not a winner/loser feature scorecard. These projects solve overlapping but different jobs; check their upstream documentation for current capabilities.

ProjectCore mental modelA strong fit when you want...
DataSentrydiscover → explain → repair → verifyautomatic issue discovery plus a controlled, reversible remediation loop
Great ExpectationsExpectations / expressive data testsexplicit validation rules, validation results, and generated data-quality documentation
Soda Coredata contracts and quality checksYAML contracts and verification across a broad data stack
Deequ“unit tests for data” on Sparklarge-scale data verification in Spark-centric environments
ydata-profilingone-line profiling / EDAfast exploratory profiling and shareable analysis reports

DataSentry is intentionally not trying to replace a metadata catalog, lineage platform, or every validator. Its focus is narrower: find bad data, show why it was flagged, and close the repair loop without gambling on the source.

Local-first by design

  • deterministic detection and scoring run locally;
  • DuckDB powers core local execution;
  • OpenAI/Ollama assistance is optional;
  • PII redaction, encrypted mappings, and LLM audit records are available when AI is enabled;
  • the original source file is not overwritten by repair workflows.

Data sources

  • CSV, Parquet, JSONL, XLSX
  • DuckDB and SQLite
  • PostgreSQL and MySQL
  • s3://, gs://, and az:// objects
  • single files, batches, and globs

History and drift

Persist scans and compare data over time:

bash
datasentry drift latest ordersdatasentry score

Tracked signals include schema changes, row-count movement, quality-score changes, and issue-distribution drift.

Architecture

mermaid
flowchart LR    Sources[Files / DBs / cloud objects] --> DuckDB[Local execution]    DuckDB --> Detect[39 detectors]    Detect --> Evidence[Evidence fusion]    Evidence --> Score[6-dimension score]    Score --> Reports[Reports / history / gates]    Reports --> CLI[CLI / TUI]    Reports --> Web[Web / REST]    Reports --> MCP[MCP]    Evidence --> Proposal[Repair proposal]    Proposal --> Preview[Preview]    Preview --> Apply[Apply to copy]    Apply --> Verify[Verify by re-scan]    Verify --> Rollback[Rollback artifact]    LLM[Optional OpenAI / Ollama] -. proposes .-> Proposal

Reproducible benchmark

bash
uv syncuv run python benchmarks/bench_scan.py 1000000 42

The benchmark generates synthetic dirty data and measures profiling, detection/fusion/scoring, numeric-outlier detection, JSONL reading, sampling, score drift, and memory high-water marks. See docs/BENCHMARKS.md.

Development

bash
uv syncmake check          # lint + mypy --strict + tests/coveragemake demo           # exercise the public datasentry demo pathmake bench          # benchmarkmake build          # distributions

Contributing

Useful contributions include new detectors, connectors, integration examples, reproducible benchmark cases, documentation/translations, minimal bug reproductions, and CLI/TUI/Web usability improvements.

Want a small first contribution? Start with good first issue #14 or good first issue #15.

See CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, and ROADMAP.md. Small contributions are tracked with good first issue and help wanted labels.

Documentation

License

Apache-2.0 — see LICENSE.


If DataSentry helps you catch bad data before it reaches production, consider giving the repository a ⭐.
It helps other data engineers discover the project.

Source: README.md at commit 8c1a89b

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

3
  1. v2.0.0LatestOct 19, 2026
  2. v1.0.5Oct 19, 2026
  3. v1.0.4Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts