Use in your browser

Validate your data package

Validate a hosted datapackage.json and the remote CSV rows it points at. Frictionless checks field types, constraints, primary keys, and cross-resource foreign keys, anchoring cell-level findings to their resource, row, and field. Compare two publications of the same dataset to see which conformance findings changed.

Guest includes 50 lifetime app requests. Create a free account for 100 app requests each calendar month. One allowance across every app, in your browser and your agent.One allowance across every app, in your browser and your agent. Manage usage

Data Package Check

Connect agent

Guest access is available after setup. Full account linking verified by PowMCP: Claude only.

Check

Validate one hosted Data Package descriptor and its remote CSV rows: types, constraints, primary keys, and cross-resource foreign keys.

Usually finishes in a few seconds; a large multi-resource package can take up to 110 seconds.

Descriptor source

Only the active source is sent. You can switch without losing what you entered.

52 of 2048
0 values
Paste multiple values

Leave empty to validate every declared resource, up to 20.

Allowed range: 1–1000000 · whole numbers

Leave empty to read up to 200,000 rows per resource.

Add Data Package Check to your agent

Connect this app on its own. Add other PowMCP apps whenever your agent needs another job done.

Open the apps workspace A glowing app tile clicking into a slot on a dark agent device, with the PowMCP app box behind it

Connect directly

Choose your agent. Each button opens a new tab with only this app's endpoint ready to add.

Use another agent

Copy one ready-to-send prompt for any agent that supports remote MCP connections.

Manual endpoint, JSON, and terminal commands

For clients that require manual configuration, use this app-only endpoint, its JSON entry, or one terminal command.

ChatGPT: enable Developer mode in Settings → Security and login, then add this MCP endpoint from the Plugins page. Availability depends on your account and workspace policy. PowMCP has not yet verified ChatGPT account linking. OpenAI setup guide

https://powmcp.com/data-package-check/mcp
{
  "mcpServers": {
    "powmcp-data-package-check": {
      "type": "http",
      "url": "https://powmcp.com/data-package-check/mcp"
    }
  }
}

Terminal agents add this app with one command:

Claude Code
claude mcp add --transport http powmcp-data-package-check https://powmcp.com/data-package-check/mcp
Codex CLI
codex mcp add powmcp-data-package-check --url https://powmcp.com/data-package-check/mcp
Gemini CLI
gemini mcp add --transport http powmcp-data-package-check https://powmcp.com/data-package-check/mcp

Manage, disable, or remove this connection in your agent's own MCP settings. PowMCP does not label an external connection as installed without confirmation from that client.

Proof

What it does

Validate a hosted Data Package descriptor AND its referenced remote data rows: types, constraints, primary keys, and cross-resource foreign keys the sandbox can't fetch

Validate one hosted Data Package descriptor and the remote CSV resources it references against Table Schema (field types, constraints, primary keys, uniqueness, cross-resource foreign keys, and dialect, anchored to resource, row, and field) or compare two same-lineage packages before and after a refresh, with a clear row-and-schema-conformance-versus-data-truth boundary.

Category
Developer Tools

Request cost1 completed result

Guests get 50 lifetime app requests. Free accounts get 100 each calendar month.

Tools in this app

01

Data Package Conformance Check

datapackage_check

Validates one directly hosted public Data Package: fetches the datapackage.json descriptor, resolves its declared resource paths against the base URL, downloads the referenced remote CSV/tabular resources (up to 20 resources, ~50 MB each, ~120 MB aggregate, very large CSVs row-sampled), and runs the pinned Frictionless engine over the ACTUAL rows, validating field types, constraints, primary keys, uniqueness, cross-resource foreign keys, and dialect against the data. The remote-row fetch is the point: it is the part a code interpreter with no network cannot do. Returns whole-package pass/fail, the engine version, resources declared vs fetched, and per-resource conformance (rows validated, error counts and bounded findings anchored to row and field, primary-key state, and foreign-key integrity per declared key as fk-satisfied or fk-violation), plus distinguished states (not-a-datapackage vs datapackage-invalid; schema-invalid vs schema-valid-but-row-errors; resource-unreachable vs resource-absent; fk-violation vs fk-not-declared) and truncation. Use for one-package validity and diagnosis: 'is this data package valid', 'do the rows conform to the schema', 'do the primary and foreign keys hold'. A pass means only that the fetched descriptor is spec-valid and the fetched rows conform to the declared Table Schema. It does not mean the data is factually accurate, current, or complete, that the schema models the domain, or that unfetched resources are valid; it does not validate an unhosted local package. Downloads and validates live remote resources and can take up to 100 seconds. Tell the user before calling.

02

Data Package Conformance Compare

datapackage_compare

Runs the identical pinned Frictionless validation over exactly two directly hosted public Data Packages (baseline first, revised second) sequentially under one shared deadline, then reports which per-resource conformance findings regressed or were resolved. Returns per-package descriptor hashes, conformance verdicts and error counts; a comparability note asserting both resolved to a Data Package with an overlapping resource/schema lineage (and flagging the pair not-comparable otherwise); a difference table of error groups introduced (regressions) and resolved keyed by resource and error type; foreign-key integrity changes; and a ranking by conformance state then fewer errors. Select this whenever the user gives two descriptor URLs and asks what changed, which publication regressed, or which is cleaner: the same package before and after a refresh, or the same dataset on two hosts (the version may differ); the tool itself reports not-comparable if the two do not line up, so you do not need to pre-verify their sameness. The ranking orders machine-checkable conformance only (fewer errors never means one package's data is truer, more current, or more complete), and human review remains required for both. Validating two live multi-resource packages sequentially can take longer than a single check; tell the user before calling.

Data Package Check questions

Scope and boundaries for Data Package Check.

01What can I check with Data Package Check?

Validate DataHub's hosted global-temperature datapackage.json and the remote tabular resources it declares, or compare its latest package-store descriptor with the published package URL.

02How should I read the result?

Start with descriptorState, checkState, valid, and resourceCount. Valid covers only a valid descriptor and the fetched, validated rows; fix descriptor or schema errors before row, primary-key, and foreign-key findings. Unfetched resources, uncheckable foreign keys, subset selection, row sampling, or caps leave untouched data inconclusive; use comparison differences only when comparable is true.

03What are its limits?

A valid result applies only to the fetched descriptor and rows checked against the declared Table Schema. It does not establish factual accuracy, freshness, completeness, or domain-model quality; resource, byte, and row-sampling caps can leave declared data unchecked and are exposed in truncation.