プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

pipeverify

作者:akshaysharma1088バージョン 0.3.0i★ 2iパソコンで動く
レジストリ名io.github.akshaysharma1088/pipeverify

インストール方法

What it does

Read-only check that a pipeline change left the data right: pass, review or block.

  • Connects パソコンで動く
  • Account or key No key needed
  • Category その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  3. この設定を貼り付けて保存

    {
      "mcpServers": {
        "pipeverify": {
          "command": "uvx",
          "args": [
            "pipeverify",
            "mcp"
          ]
        }
      }
    }
  4. Claude を終了してもう一度開く

  5. 試してみる

    pipeverify を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ pipeverify につなげません

pipeverify はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · pipeverify につなげるアプリを使う

  • 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)

B · その他 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  3. このコマンドを貼り付けて Enter

    claude mcp add --scope user pipeverify -- uvx pipeverify mcp
  4. Claude Code で /mcp と入力

    pipeverify が一覧にあり、接続済みと表示されれば OK です

  5. 試してみる

    pipeverify を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  3. Cursor の AI チャットを Agent モードで開く

  4. 試してみる

    pipeverify を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  3. VS Code の AI チャットを Agent モードで開く

  4. 試してみる

    pipeverify を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が pipeverify を使っていると言うか、回答に pipeverify のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?pipeverify を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add --scope user pipeverify -- uvx pipeverify mcp

Claude 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に従ってください。

ひと目でわかる

週あたりのダウンロードi
164/週
接続方法
パソコンで動く
最新バージョンi
0.3.0
カテゴリi
その他
レジストリ公開日i
2026年11月13日
コードの最終更新i
2026年11月13日
作者
akshaysharma1088
パッケージ
pypi: pipeverify
ウェブサイト
github.com
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント akshaysharma1088 で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:今日

  • ✓ 合格

    ライセンスがある

    Apache-2.0を使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

その他のほかのサーバーとの比較i

  • このカテゴリのほかの19614件のうち91%よりスターが多い
  • このカテゴリのほかの19614件のうち98%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの19614件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

pipeverifyは安全ですか?

当てはまる基本チェック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

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

作者:koala73広く使われている★ 9.1万今日更新

クラウドで動く✓ 提供元 · worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

作者:ruvnet広く使われている↓ 1.4万/週★ 8.2万14 か月前更新

パソコンで動く

Windmill

Run Windmill scripts and flows and manage jobs, schedules, resources and variables.

作者:windmill-labs広く使われている★ 1.9万昨日更新

クラウドで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。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:

VerdictMeaningDefault CI behaviour
✅ PASSThe data is the same where it should be.Merge
🟡 REVIEWSomething changed that tests would not catch. A person should look.Merge allowed, flagged
⛔ BLOCKThe 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.

Why

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.

Quick start

No install needed to try it: open the 5-minute notebook in Colab.

pip install pipeverify

compare two snapshots of one table

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

ScenarioWhat happenedVerdict
1_safe_fixRevenue restated for late refunds on one day, as intended✅ PASS
2_dedupe_drops_rowsDuplicates removed on the wrong columns, real days dropped⛔ BLOCK
3_join_fanoutA join to a dimension with a duplicate row doubled one store⛔ BLOCK
4_unit_changeUpstream started sending one region's revenue in cents⛔ BLOCK
5_null_creepA renamed source field left region empty for new stores🟡 REVIEW

Every one of these runs successfully and keeps the same schema.

Sources

before and after can each be:

SourceCLI formConfig form
CSV, Parquet, JSON, Excel (.xlsx) file (CSV and JSON can be .gz or .zst compressed)data/orders.parquetpath: data/orders.parquet
DuckDB tableduckdb: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 querysnowflake: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 DataFramePython 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.

dbt: check a pull request against production
# pipeverify.yml, next to dbt_project.yml

tables:

  • name: fct_daily_sales before: {dbt: fct_daily_sales, target: prod, manifest: prod-state/manifest.json} after: {dbt: fct_daily_sales, target: ci} key: [store_id, sale_date]

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.

Snowflake
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.

Config

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:

  • name: gold.daily_sales before: snapshots/main/daily_sales.parquet after: snapshots/pr/daily_sales.parquet key: [store_id, sale_date] expect_change: [revenue] # columns this change is meant to modify ignore: [loaded_at] # columns that always change
  • name: gold.customers before: {url: "${WAREHOUSE_URL}", table: prod.customers} after: {url: "${WAREHOUSE_URL}", table: pr_123.customers} key: [customer_id] expect_row_change: true # this change is meant to add or remove rows
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.

What it checks

CheckCatchesDefault
SchemaRemoved, added or retyped columnsremoved: BLOCK, retyped: REVIEW
Row countRows lost or gainedREVIEW > 1%, BLOCK ≥ 10%
Missing keysRows that existed before and are goneREVIEW on any, BLOCK ≥ 5%
New keysRows that did not exist beforeREVIEW
Duplicate keysFan-out from joins, double loadsBLOCK on any new duplicate
Null rateColumns going emptyREVIEW > 1 pt, BLOCK ≥ 10 pts
Changed valuesMatched rows whose values changed, per columnREVIEW on any, BLOCK ≥ 10%
Column totalsUnit changes, partial loads, double countingREVIEW > 0.5%, BLOCK ≥ 5%
Category valuesNew codes in low-cardinality text columnsREVIEW

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.

Source checks

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:
  • name: silver.transactions after: snapshots/pr/silver_transactions.parquet before: snapshots/main/silver_transactions.parquet # optional key: [txn_id] source: data: landing/raw_transactions.parquet key: [txn_id] columns: {amount: amount} # output column: source column checks: [conflict] # default; also mismatch, missing, orphan where: "status = 'POSTED'" # source rows that should reach the output
CheckCatchesDefault
conflictThe source sent several values for one key and the output silently kept oneon, REVIEW
mismatchAn output value the source never sent (use only for pass-through columns)opt-in
missingSource keys that never reached the output (set where for intended filters)opt-in
orphanOutput keys that are not in the sourceopt-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 Action

# .github/workflows/pipeverify.yml

on: pull_request permissions: contents: read pull-requests: write jobs: verify: runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v7

... build the "after" snapshots for this PR here (for example: dbt build --target ci) ...

  • uses: akshaysharma1088/pipeverify@v0.3.0 with: config: pipeverify.yml fail-on: block # or review, or never extras: snowflake # optional drivers: snowflake, sql env: SNOWFLAKE_ACCOUNT: ${{ secrets.SNOWFLAKE_ACCOUNT }} # only if your sources need them

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.

Use it from an AI agent (MCP)

An agent that edits a query, a dbt model or a load should not be the one to decide it

冒頭だけを表示しています。続きはリポジトリで読めます