World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
Read-only check that a pipeline change left the data right: pass, review or block.
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
SettingsDeveloperEdit Config
{
"mcpServers": {
"pipeverify": {
"command": "uvx",
"args": [
"pipeverify",
"mcp"
]
}
}
}pipeverify を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ pipeverify につなげません
pipeverify はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · pipeverify につなげるアプリを使う
B · その他 の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add --scope user pipeverify -- uvx pipeverify mcppipeverify が一覧にあり、接続済みと表示されれば OK です
pipeverify を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
pipeverify を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
pipeverify を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Claude Code
claude mcp add --scope user pipeverify -- uvx pipeverify mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"pipeverify": {
"command": "uvx",
"args": [
"pipeverify",
"mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"pipeverify": {
"command": "uvx",
"args": [
"pipeverify",
"mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"pipeverify": {
"type": "stdio",
"command": "uvx",
"args": [
"pipeverify",
"mcp"
]
}
}
}この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
pypi: pipeverifyこのサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント akshaysharma1088 で確認済みです
コードの最終更新:今日
Apache-2.0を使用
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は今日、最新バージョン(0.3.0)がレジストリに届いたのは今日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:World Monitor, Claude Flow, Windmill
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
Run Windmill scripts and flows and manage jobs, schedules, resources and variables.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
The open-source verification step for data pipeline changes.
Check that a change left the data right, not just the job green. pipeverify compares tables before and after a change, and against the raw source, and returns PASS , REVIEW or BLOCK . Works with SQL, Spark, dbt, Airflow, or a fix written by an AI agent.
A pipeline change can pass every test, finish on time and keep the schema intact while quietly dropping rows, duplicating keys or changing what a column means. More of these changes are now written by AI coding agents, which makes "the job succeeded" an even weaker signal.
pipeverify compares your tables before and after a change and gives a verdict:
| Verdict | Meaning | Default CI behaviour |
|---|---|---|
| ✅ PASS | The data is the same where it should be. | Merge |
| 🟡 REVIEW | Something changed that tests would not catch. A person should look. | Merge allowed, flagged |
| ⛔ BLOCK | The change damages the data. | Fail the check |
It works with any tool that produces tables: SQL scripts, Spark jobs, dbt, Airflow tasks or an AI agent's fix. It needs two snapshots, nothing else. It reads dbt models and Snowflake tables directly, runs as a GitHub Action, and AI agents can call it through MCP.
In the PipeMend benchmark (DOI 10.5281/zenodo.23510784), LLM agents repaired 64 data pipeline incidents. Production-style data quality monitors approved every harmful fix the agents made. What caught them was comparing the data itself. pipeverify packages that check so any team can run it on every change.
No install needed to try it: open the 5-minute notebook in Colab.
pip install pipeverify
pipeverify compare before/orders.parquet after/orders.parquet --key order_id
BLOCK orders.parquet rows 1,200 -> 1,000, matched 1,000 BLOCK Table lost 200 rows (16.67%) BLOCK 200 key(s) present before are gone after (16.67%) BLOCK Total of 'revenue' moved 16.71% (1,383,131.25 -> 1,152,000.00)
Verdict: BLOCK This change damages the data. Do not merge as is.
Try the bundled demo, five realistic changes to a retail sales table:
git clone https://github.com/akshaysharma1088/pipeverify && cd pipeverify
pip install -e . python examples/retail/make_demo.py for s in examples/retail/scenarios/*/; do pipeverify run -c "$s/pipeverify.yml"; done
| Scenario | What happened | Verdict |
|---|---|---|
1_safe_fix | Revenue restated for late refunds on one day, as intended | ✅ PASS |
2_dedupe_drops_rows | Duplicates removed on the wrong columns, real days dropped | ⛔ BLOCK |
3_join_fanout | A join to a dimension with a duplicate row doubled one store | ⛔ BLOCK |
4_unit_change | Upstream started sending one region's revenue in cents | ⛔ BLOCK |
5_null_creep | A renamed source field left region empty for new stores | 🟡 REVIEW |
Every one of these runs successfully and keeps the same schema.
before and after can each be:
| Source | CLI form | Config form |
|---|---|---|
CSV, Parquet, JSON, Excel (.xlsx) file (CSV and JSON can be .gz or .zst compressed) | data/orders.parquet | path: data/orders.parquet |
| DuckDB table | duckdb:warehouse.db:gold.orders | {duckdb: warehouse.db, table: gold.orders} |
| DuckDB query | "duckdb:warehouse.db:SELECT ..." | {duckdb: warehouse.db, query: "SELECT ..."} |
| dbt model (DuckDB or Snowflake target) | dbt:fct_orders | {dbt: fct_orders, target: prod, manifest: prod/manifest.json} |
| Snowflake table or query | snowflake:ANALYTICS.GOLD.ORDERS | {snowflake: ANALYTICS.GOLD.ORDERS, where: "order_date >= '2026-10-01'"} |
| Any SQLAlchemy database (Postgres, BigQuery, ...) | {url: "postgresql://${PGUSER}@host/db", table: gold.orders} | |
| pandas DataFrame | Python API |
SQL databases need pip install "pipeverify[sql]" plus the driver for your database. Environment variables in URLs are expanded, so credentials stay out of the config file.
See SQL source examples for Postgres, Snowflake and BigQuery.
# pipeverify.yml, next to dbt_project.yml
tables:
dbt: finds the model's table in dbt's manifest.json and connects the way profiles.yml says for that target, so there is no second set of credentials to keep. manifest is the manifest of the run you are comparing with (the same file --state and --defer use); leave it out for target/manifest.json. pipeverify does not run dbt and writes nothing. DuckDB and Snowflake targets work today. A runnable project, with a join that fans out while every dbt test stays green, is in examples/dbt_pr.
pip install "pipeverify[snowflake]"
export SNOWFLAKE_ACCOUNT=myorg-myaccount SNOWFLAKE_USER=ci_user SNOWFLAKE_PRIVATE_KEY_PATH=~/.ssh/snowflake.p8 export SNOWFLAKE_ROLE=REPORTER SNOWFLAKE_WAREHOUSE=COMPUTE_WH pipeverify compare snowflake:PROD.GOLD.ORDERS snowflake:DEV.GOLD.ORDERS --key order_id
It reads the same SNOWFLAKE_* variables as the Snowflake CLI and DataRanger (password, key pair, token or SNOWFLAKE_AUTHENTICATOR), or a named connection from ~/.snowflake/connections.toml with {snowflake: ..., connection: name}. It runs one SELECT per snapshot, tagged pipeverify in query history, and nothing else, so a read-only role is enough. Each snapshot is loaded into memory: for a big table add where: or pass a query, and compare the slice your change touched.
Check many tables at once with pipeverify.yml (pipeverify init writes a starter file):
thresholds: # optional, overrides the defaults below for every table
row_change_block_pct: 10 #skip_id_like_totals: true # set to false to also check totals of *_id columns tables:
pipeverify run # uses ./pipeverify.yml
pipeverify run --fail-on review # stricter: fail CI on REVIEW too pipeverify run --format markdown -o report.md pipeverify run --json-out report.json
Exit code is 1 when the verdict reaches --fail-on (default block), otherwise 0.
| Check | Catches | Default |
|---|---|---|
| Schema | Removed, added or retyped columns | removed: BLOCK, retyped: REVIEW |
| Row count | Rows lost or gained | REVIEW > 1%, BLOCK ≥ 10% |
| Missing keys | Rows that existed before and are gone | REVIEW on any, BLOCK ≥ 5% |
| New keys | Rows that did not exist before | REVIEW |
| Duplicate keys | Fan-out from joins, double loads | BLOCK on any new duplicate |
| Null rate | Columns going empty | REVIEW > 1 pt, BLOCK ≥ 10 pts |
| Changed values | Matched rows whose values changed, per column | REVIEW on any, BLOCK ≥ 10% |
| Column totals | Unit changes, partial loads, double counting | REVIEW > 0.5%, BLOCK ≥ 5% |
| Category values | New codes in low-cardinality text columns | REVIEW |
Columns listed in expect_change are reported but never raise the verdict. All thresholds can be changed globally or per table; see pipeverify/checks.py for every option.
A before/after diff only sees damage to rows that already existed. Errors in new data need evidence the pipeline does not control: the raw source. Add a source block to a table:
tables:
| Check | Catches | Default |
|---|---|---|
conflict | The source sent several values for one key and the output silently kept one | on, REVIEW |
mismatch | An output value the source never sent (use only for pass-through columns) | opt-in |
missing | Source keys that never reached the output (set where for intended filters) | opt-in |
orphan | Output keys that are not in the source | opt-in |
From the command line:
pipeverify compare - silver.parquet -k txn_id --source raw.parquet --source-column amount
In a pilot on the 209 executed fixes in the PipeMend benchmark (25 harmful), production-style monitors caught 16 harmful fixes, and the source conflict check caught the 9 that the monitors approved. Together they caught all 25, at the cost of a REVIEW on 21 of 184 correct fixes, all on incidents where the source data really was ambiguous. This is a small pilot on synthetic data; a larger evaluation is in progress.
# .github/workflows/pipeverify.yml
on: pull_request permissions: contents: read pull-requests: write jobs: verify: runs-on: ubuntu-latest steps:
The action posts the report as a PR comment and in the job summary, fails the job at the verdict you choose, and exposes verdict, report and json as outputs.
An agent that edits a query, a dbt model or a load should not be the one to decide it