dataranger
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
DataRanger checks a date-partitioned fact table against its reference table and the source's control totals. It finds broken partitions, proposes fixes, verifies each fix on a copy, and only marks a fix 'auto-fixed' when it is proven and low risk; everything else is 'escalate', meaning a person must decide. Call a patrol tool before relying on a table, report escalations to the user rather than working around them, and never claim data was changed: these tools only write a report.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| patrol_duckdbA | Check a fact table in a DuckDB database for data-quality incidents and say which are safe to fix. A patrol checks every daily partition of the fact table for duplicate keys, duplicate rows, missing partitions, rows that point to no reference record, null spikes, and row counts or amounts that do not match the source's control totals. For each problem it proposes a fix, tests that fix on a copy against the control totals, and decides: "auto-fixed" (proven and low risk), "no action needed" (checked, the data is right) or "escalate" (a person must decide). |
| patrol_filesA | Check a fact table in CSV, TSV or Parquet files for data-quality incidents and say which are safe to fix. A patrol checks every daily partition of the fact table for duplicate keys, duplicate rows, missing partitions, rows that point to no reference record, null spikes, and row counts or amounts that do not match the source's control totals. For each problem it proposes a fix, tests that fix on a copy against the control totals, and decides: "auto-fixed" (proven and low risk), "no action needed" (checked, the data is right) or "escalate" (a person must decide). |
| get_incidentA | Return the full evidence behind one incident from a patrol that has already run. |
| run_demoA | Run a patrol on generated sample data, to see what DataRanger reports without touching real data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: two patrol entry points that differ only by storage backend, one evidence lookup, and one demo runner. The patrol_duckdb/patrol_files pair could superficially overlap, but each description explicitly says when to use the other, and get_incident and run_demo are unmistakable.
All names are snake_case verb_noun: get_incident, patrol_duckdb, patrol_files, run_demo. The backend qualifier on patrol_* is a predictable, readable variant rather than a convention break.
Four tools is well-scoped for a focused data-quality patrol server: two input modes, one drill-down, one demo. Nothing is redundant and no obvious operation is missing from the count.
The lifecycle is covered: run a patrol, drill into an incident, and try it on sample data, with cross-references between tools forming a coherent flow. The main gap is that fixes are only written to fixed_version.csv for review, with no tool to apply or approve a proposed fix, so the remediation loop dead-ends at a file.