Token导航 LogoToken导航TokenDH.com
goldencheck (Benzsevern) logo
运维云端stdio官方级别未说明来源级核验

goldencheck (Benzsevern)

MCP Server

GoldenCheck是一款自动从数据中发现规则的数据验证工具,无需手动编写规则,适用于多种数据质量检查场景。

工具数

19

提示词数

0

GitHub Stars

2

资源数

0
数据验证PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

benseverndev-oss

提供方

benseverndev-oss

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install goldencheck

详细介绍

动了。 该回购已转移到 benzsevern/goldenmatch monorepo packages/python/goldencheck (and packages/typescript/goldencheck)/。此回购已存档;monorepo出现了新的发展。

金支票

数据验证,从数据中发现规则,这样您就不必编写它们。 建造于 本·塞文.

![PyPI](https://pypi.org/project/goldencheck/) ](https://www.npmjs.com/package/goldencheck) ![CI](https://github.com/benzsevern/goldencheck/actions/workflows/test.yml) ![codecov](https://codecov.io/gh/benzsevern/goldencheck) ](https://pepy.tech/project/goldencheck) ](https://www.npmjs.com/package/goldencheck) ![Python 3.11+](https://python.org) ](https://nodejs.org) ![TypeScript](https://typescriptlang.org) ![License: MIT](LICENSE) ![DQBench](https://github.com/benzsevern/dqbench) ![Docs](https://benzsevern.github.io/goldencheck/) ![Open In Colab](https://colab.research.google.com/github/benzsevern/goldencheck/blob/main/scripts/goldencheck_demo.ipynb)

每个竞争对手都让你先写规则。GoldenCheck翻转它: 先验证,遵守你关心的规则。

为什么选择GoldenCheck?

GoldenCheck远大前程Pandera空白
规则从数据中发现手写手写手写
配置零开始繁重的YAML/Python设置装饰器/模式YAML/Python
接口CLI+交互式TUIHTML报告例外情况HTML/笔记本
学习曲线一个命令小时/天中等中等
LLM增强是(0.01美元/次扫描)
修复建议是,在TUI中
置信度评分是(每项发现的H/M/L)
DQBench评分88.4021.68(尽力)32.51(尽力)6.94(自动)

安装

pip install goldencheck

借助LLM boost支持:

pip install goldencheck[llm]

具有深度分析和基线支持(scipy、numpy):

pip install goldencheck[baseline]

使用语义类型推理作为基线(句子转换):

pip install goldencheck[baseline,semantic]

JavaScript/TypeScript

npm install goldencheck

边缘安全核心 (浏览器、Cloudflare Workers、Vercel Edge):

import { scanData, TabularData } from "goldencheck/core";

Node.js (文件读取、CLI、MCP):

import { readFile, scanData } from "goldencheck/node";

快速开始

# Scan a file — discovers issues, launches interactive TUI
goldencheck data.csv

# CLI-only output (no TUI)
goldencheck data.csv --no-tui

# With LLM enhancement (requires API key)
goldencheck data.csv --llm-boost --no-tui

# Validate against saved rules (for CI/pipelines)
goldencheck validate data.csv

# JSON output for CI integration
goldencheck data.csv --no-tui --json

# Learn baseline (one-time, deep analysis)
goldencheck baseline data.csv

# Scan with drift detection (fast, uses saved baseline)
goldencheck scan new_data.csv

TypeScript快速入门

// Scan an array of records (edge-safe — works anywhere)
import { scanData, TabularData, Severity } from "goldencheck";

const data = new TabularData([
  { id: 1, email: "alice@example.com", age: 30, status: "active" },
  { id: 2, email: "bob@test.com", age: -5, status: "inactive" },
  { id: 3, email: "not-an-email", age: 25, status: "active" },
]);

const { findings, profile } = scanData(data);
for (const f of findings) {
  console.log(`[${f.severity === Severity.ERROR ? "ERROR" : "WARNING"}] ${f.column}: ${f.message}`);
}
// Scan a CSV file (Node.js)
import { readFile, scanData, applyConfidenceDowngrade, healthScore } from "goldencheck/node";

const data = readFile("data.csv");
const result = scanData(data, { domain: "healthcare" });
const findings = applyConfidenceDowngrade(result.findings, false);

// Health score
const byCol = {};
for (const f of findings) {
  if (f.severity >= 2) {
    byCol[f.column] ??= { errors: 0, warnings: 0 };
    byCol[f.column][f.severity === 3 ? "errors" : "warnings"]++;
  }
}
const { grade, points } = healthScore(byCol);
console.log(`Health: ${grade} (${points}/100)`);
// Validate against pinned rules
import { readFile, scanData, validateConfig, validateData } from "goldencheck/node";
import { readFileSync } from "node:fs";
import YAML from "yaml";

const config = validateConfig(YAML.parse(readFileSync("goldencheck.yml", "utf-8")));
const data = readFile("data.csv");
const findings = validateData(data, config);
// Create baseline and detect drift
import { readFile, createBaseline, serializeBaseline, scanData } from "goldencheck/node";
import { runDriftChecks, deserializeBaseline } from "goldencheck";
import { writeFileSync, readFileSync } from "node:fs";

// Learn baseline
const data = readFile("reference.csv");
const baseline = createBaseline(data);
writeFileSync("baseline.json", serializeBaseline(baseline));

// Later: detect drift
const newData = readFile("production.csv");
const saved = deserializeBaseline(readFileSync("baseline.json", "utf-8"));
const driftFindings = runDriftChecks(newData, saved);
// LLM-enhanced scanning (edge-safe)
import { scanData, TabularData, callLlm, parseLlmResponse, mergeLlmFindings, buildSampleBlocks } from "goldencheck";

const data = new TabularData(records);
const result = scanData(data, { returnSample: true });
const blocks = buildSampleBlocks(result.sample, result.findings);
const { text } = await callLlm("anthropic", JSON.stringify(blocks));
const llmResponse = parseLlmResponse(text);
if (llmResponse) {
  const enhanced = mergeLlmFindings(result.findings, llmResponse);
}

运作原理

1. SCAN     →  goldencheck data.csv
                GoldenCheck profiles your data and discovers what "healthy" looks like

2. REVIEW   →  Interactive TUI shows findings sorted by severity
                Each finding has: description, affected rows, sample values

3. PIN      →  Press Space to promote findings into permanent rules
                Dismiss false positives — they won't come back

4. EXPORT   →  Press F2 to save rules to goldencheck.yml
                Human-readable YAML with your pinned rules

5. VALIDATE →  goldencheck validate data.csv
                Enforce rules in CI with exit codes (0 = pass, 1 = fail)

它检测到什么

柱级配置文件

Profiler它捕获了什么示例
类型推断实际为数字的字符串列“列 age 是字符串,但98%是整数”
空属性必需列与可选列“50k行中有0个空值——可能是必需的”
独特性主键候选者,近乎重复“100%唯一——可能是主键”
格式检测电子邮件、电话、网址、日期“94%的电子邮件格式,6%的格式错误”
范围和分布异常值,最小/最大边界“3行值>10000”
基数低基数枚举建议“4个唯一值——可能的枚举”
图案一致性列中的混合格式“检测到3种手机格式”

横柱轮廓仪

Profiler它捕获了什么
时间排序start_date>end_date违规
零相关性一起为空的列(例如,地址+城市+zip)
数字交叉列value>max违规(例如,索赔金额>policy_max)
年龄vs出生日期年龄列与从出生日期算起的年龄不匹配

基线深度剖面和漂移检测

goldencheck baseline 一旦建立健康数据的统计档案。在每次后续扫描中,GoldenCheck都会将新数据与保存的基线进行比较,并报告13种检查类型的偏差:

检查类型它捕获了什么
distribution_drift价值分配发生了显著变化
entropy_drift列值的熵已更改
bound_violation值超过历史最小/最大界限
benford_drift前导数字分布偏离本福德定律
fd_violation列之间的函数依赖关系已断开
key_uniqueness_loss以前唯一的列现在有重复项
temporal_order_drift违反了历史列排序约束
type_drift列的主导语义类型已更改
correlation_break以前相关的列不再相关
new_correlation出现了新的意外相关性
pattern_drift值格式/模式分布已发生变化
new_pattern柱中出现了新的结构模式

基线是使用6种技术构建的:统计分析器(分布、本福德定律、熵)、约束挖掘器(函数依赖、时间顺序)、语义类型推断器(嵌入+关键字)、相关性分析器(Pearson、Cramér's V)、模式语法诱导器和置信度先验构建器。

域包

通过域特定类型定义提高检测精度:

goldencheck scan data.csv --domain healthcare   # NPI, ICD, insurance, patient types
goldencheck scan data.csv --domain finance      # accounts, routing, CUSIP, transactions
goldencheck scan data.csv --domain ecommerce    # SKUs, orders, tracking, products

域包添加了语义类型,减少了误报,提高了行业特定数据的分类。

架构差异

比较数据文件的两个版本:

goldencheck diff data.csv                  # compare against git HEAD
goldencheck diff old.csv new.csv           # compare two files
goldencheck diff data.csv --ref main       # compare against a branch

自动修正

应用自动修复程序来清理数据:

goldencheck fix data.csv                          # safe: trim, normalize, fix encoding
goldencheck fix data.csv --mode moderate          # + standardize case
goldencheck fix data.csv --mode aggressive --force # + coerce types
goldencheck fix data.csv --dry-run                # preview changes

观看模式

持续监控目录的数据质量:

goldencheck watch data/ --interval 30        # re-scan every 30s
goldencheck watch data/ --exit-on error      # CI mode: fail on first error

REST API

将GoldenCheck作为微服务运行:

goldencheck serve --port 8000

# Scan via file upload
curl -X POST http://localhost:8000/scan --data-binary @data.csv

# Scan via URL
curl -X POST http://localhost:8000/scan/url -d '{"url": "https://example.com/data.csv"}'

数据库扫描

直接扫描表格——无需CSV导出:

pip install goldencheck[db]
goldencheck scan-db "postgresql://user:pass@host/db" --table orders
goldencheck scan-db "snowflake://..." --query "SELECT * FROM orders WHERE date > '2024-01-01'"

计划运行

使用webhook通知进行类似Cron的调度:

goldencheck schedule data/*.csv --interval hourly --webhook https://hooks.slack.com/...
goldencheck schedule data/*.csv --interval daily --notify-on grade-drop

LLM提升

添加 --llm-boost 利用LLM智能增强分析器的发现。LLM会收到您数据的代表性样本,并:

  1. 查找分析人员遗漏的问题 --语义理解(例如,姓名栏中的“12345”)
  2. 升级严重性 --知道“应该需要电子邮件”,即使分析器只说“信息”
  3. 发现关系 --确定列之间的时间顺序,如 signup_datelast_login
  4. 降低误报率 --混合电话格式很常见,不是错误
# Using OpenAI
export OPENAI_API_KEY=sk-...
goldencheck data.csv --llm-boost --llm-provider openai --no-tui

# Using Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
goldencheck data.csv --llm-boost --no-tui

成本: 每次扫描约0.01美元(一次API调用,带有代表性样本,而不是每次扫描)。

预算控制:

export GOLDENCHECK_LLM_BUDGET=0.50  # max spend per scan in USD

配置(goldencheck.yml)

version: 1

settings:
  sample_size: 100000
  fail_on: error

columns:
  email:
    type: string
    required: true
    format: email
    unique: true

  age:
    type: integer
    range: [0, 120]

  status:
    type: string
    enum: [active, inactive, pending, closed]

relations:
  - type: temporal_order
    columns: [start_date, end_date]

ignore:
  - column: notes
    check: nullability

此文件中只显示固定规则,而不是每个发现。这 ignore 该列表可防止被驳回的调查结果再次出现。

CLI 参考

命令描述
goldencheck 扫描并启动TUI
goldencheck scan 显式扫描(支持 --smart, --guided)
goldencheck validate 根据goldencheck.yml进行验证
goldencheck review 扫描+验证,启动TUI
goldencheck init 交互式设置向导(扫描→ 配置→ CI)
goldencheck diff [file2]比较两个文件或与git HEAD进行比较
goldencheck watch 轮询目录,更改时重新扫描
goldencheck fix 自动修复数据质量问题
goldencheck baseline 深度配置文件数据并将统计基线保存到YAML
goldencheck learn 生成LLM验证规则
goldencheck history显示扫描历史和趋势
goldencheck serve启动REST API服务器
goldencheck scan-db 直接扫描数据库表
goldencheck schedule 按照cron计划运行扫描
goldencheck mcp-serve启动MCP服务器(19个工具)

旗帜

标志描述
--no-tui将结果打印到控制台
--jsonJSON输出
--fail-on 严重性退出1: errorwarning
--domain 域包: healthcare, finance, ecommerce
--llm-boost启用LLM增强
--llm-provider LLM提供者: anthropic (默认)或 openai
--mode 修复模式: safe, moderate, aggressive
--smart自动分诊:高置信度,低置信度
--guided逐一浏览调查结果
--webhook 将结果发布到Slack/PagerDuty/任何URL
--notify-on Webhook触发器: grade-drop, any-error, any-warning
`--baseline
`漂移检测的基线YAML路径
--no-baseline跳过自动发现 goldencheck_baseline.yaml
--skip 跳过基线技术(可以重复)
--update更新现有基线,而不是覆盖
`-o
`基线文件的输出路径(默认值: goldencheck_baseline.yaml)
--version显示版本

TypeScript命令行界面

npx goldencheck-js scan data.csv --json
npx goldencheck-js scan data.csv --domain healthcare
npx goldencheck-js health-score data.csv
npx goldencheck-js profile data.csv
npx goldencheck-js validate data.csv --config goldencheck.yml
npx goldencheck-js baseline data.csv --output baseline.json
npx goldencheck-js fix data.csv --mode safe
npx goldencheck-js diff old.csv new.csv
npx goldencheck-js demo

TypeScript架构

goldencheck (npm)
├── goldencheck/core    # Edge-safe: browsers, Workers, Edge Runtime
│   ├── types           # Finding, Severity, DatasetProfile, Config types
│   ├── data            # TabularData — zero-dep columnar abstraction
│   ├── profilers       # 10 column profilers + 4 relation profilers
│   ├── semantic        # Type classifier, suppression, 3 domain packs
│   ├── engine          # Scanner, confidence, validator, triage, differ, fixer
│   ├── baseline        # Statistical profiling, constraints, correlation, patterns
│   ├── drift           # 13 drift checks against saved baseline
│   ├── llm             # Anthropic + OpenAI via fetch(), merger, budget
│   ├── agent           # Strategy, handoff, review queue
│   └── reporters       # JSON, CI
└── goldencheck/node    # Node.js >= 20
    ├── reader          # CSV, Parquet (via nodejs-polars)
    ├── mcp             # MCP server (7 tools)
    ├── a2a             # Agent-to-Agent HTTP server
    ├── tui             # ANSI terminal output
    ├── db-scanner      # Postgres, MySQL, SQLite
    └── watcher         # Directory polling

基准测试

速度

数据集时间吞吐量
1K行0.05秒19K行/秒
10K行0.23s43K行/秒
100K行2.29s44K行/秒
1M行2.07秒482K行/秒

DQBench v1.0--头对头

工具模式DQBench评分
金支票零配置88.40
Pandera尽力法则32.51
苏打核心尽力而为规则22.36
远大的期望尽力而为的原则21.68
GoldenCheck的零配置发现优于所有竞争对手,即使他们有手写的规则。

自己运行基准测试:

pip install dqbench goldencheck
dqbench run goldencheck

检测精度

模式列召回成本
仅分析器(v0.1.0)87%0美元
仅限Profiler(v0.2.0,有信心)100%$0
使用LLM Boost100%~$0.003-0.01

在自定义基准测试中,对9个类别的341个植入数据质量问题进行了测试。

v0.2.0的改进:少数错误类型检测、范围分析器链、更广泛的时间启发式和置信度评分将分析器的召回率从87%提高到100%。

Raha基准数据集

数据集列召回
航班(2376排)100% (4/4列)
啤酒(2410排)80% (4/5列)

技术栈

依赖性目的
极地所有数据操作
类型CLI框架
文本的交互式TUI
富有的CLI输出格式
Pydantic 2配置验证

可选: Anthropic SDK / OpenAI SDK LLM Boost| MCP-SDK 对于MCP服务器| SciPy + 数值Python 用于深度基线分析([baseline]) | 句子变换器 用于基线语义类型推理([semantic])

Types/Node.js

依赖性目的
零运行时deps核心包没有依赖关系(边缘安全)
拼花阅读(可选,仅限Node.js)
csv解析CSV读取(仅限Node.js)
@模型上下文协议/sdkMCP服务器(仅限Node.js)

MCP服务器(克劳德桌面)

GoldenCheck包括一个用于Claude Desktop集成的MCP服务器:

pip install goldencheck[mcp]

添加到您的Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "goldencheck": {
      "command": "goldencheck",
      "args": ["mcp-serve"]
    }
  }
}

可用工具:

工具说明
scan扫描文件以查找数据质量问题(可选LLM增强)
validate根据goldencheck.yml中的固定规则进行验证
profile获取列级统计数据和健康评分
health_score数据文件的快速A-F等级
get_column_detail深入了解特定专栏
list_checks列出所有可用的分析器检查

远程MCP服务器

GoldenCheck可作为托管MCP服务器在 铁匠铺 --无需安装任何东西即可从任何MCP客户端连接。

克劳德桌面/克劳德代码:

{
  "mcpServers": {
    "goldencheck": {
      "url": "https://goldencheck-mcp-production.up.railway.app/mcp/"
    }
  }
}

本地服务器:

pip install goldencheck[mcp]
goldencheck mcp-serve

19种可用工具:扫描文件、验证规则、配置文件列、健康评分数据集、自动配置验证、解释发现、比较域、建议修复。

Jupyter/Colab

GoldenCheck在Jupyter笔记本中呈现丰富的HTML:

from goldencheck.engine.scanner import scan_file
from goldencheck.engine.confidence import apply_confidence_downgrade
from goldencheck.notebook import ScanResult

findings, profile = scan_file("data.csv")
findings = apply_confidence_downgrade(findings, llm_boost=False)

# Rich HTML display in notebooks
ScanResult(findings=findings, profile=profile)

![Open In Colab](https://colab.research.google.com/github/benzsevern/goldencheck/blob/main/scripts/goldencheck_demo.ipynb)

API快速参考

python

import goldencheck

# Scan a CSV for quality issues
findings = goldencheck.scan_file("data.csv")
for f in findings:
    print(f"[{f.severity}] {f.column}: {f.check} — {f.message}")

# Create baseline and detect drift
from goldencheck import create_baseline, scan_file
baseline = create_baseline("data.csv")
baseline.save("goldencheck_baseline.yaml")
findings, profile = scan_file("data.csv", baseline="goldencheck_baseline.yaml")

# Health score
score = goldencheck.health_score("data.csv")
print(score)  # e.g. "B (78/100)"

TypeScript

import { scanData, TabularData, Severity } from "goldencheck";

// Scan records (edge-safe)
const data = new TabularData(records);
const { findings, profile } = scanData(data);
for (const f of findings) {
  console.log(`[${f.severity === Severity.ERROR ? "ERROR" : "WARNING"}] ${f.column}: ${f.message}`);
}
import { readFile, scanData, applyConfidenceDowngrade, healthScore } from "goldencheck/node";

// Scan a CSV file (Node.js)
const data = readFile("data.csv");
const result = scanData(data, { domain: "healthcare" });
const findings = applyConfidenceDowngrade(result.findings, false);

// Health score
const byCol = {};
for (const f of findings) {
  if (f.severity >= 2) {
    byCol[f.column] ??= { errors: 0, warnings: 0 };
    byCol[f.column][f.severity === 3 ? "errors" : "warnings"]++;
  }
}
const { grade, points } = healthScore(byCol);
console.log(`Health: ${grade} (${points}/100)`);
import { readFile, createBaseline, serializeBaseline } from "goldencheck/node";
import { runDriftChecks, deserializeBaseline } from "goldencheck";
import { writeFileSync, readFileSync } from "node:fs";

// Create baseline and detect drift
const data = readFile("reference.csv");
const baseline = createBaseline(data);
writeFileSync("baseline.json", serializeBaseline(baseline));

const newData = readFile("production.csv");
const saved = deserializeBaseline(readFileSync("baseline.json", "utf-8"));
const driftFindings = runDriftChecks(newData, saved);

贡献

贡献.md 用于开发设置和指南。

作者

本·塞文

许可证

麻省理工学院——见 许可证

______________________________________________________________________

黄金套房的一部分

工具用途安装
金支票验证和分析数据质量pip install goldencheck / npm install goldencheck
GoldenFlow转换和标准化数据pip install goldenflow
GoldenMatch重复和匹配记录pip install goldenmatch
金管协调整个管道pip install goldenpipe

配套项目:

目录标签

目录标签

数据验证PythonClaude本地部署数据质量自动化规则发现数据清洗数据监控

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

19

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP