SmartDataAI for AI Agents
A pilot. Your agent runs our data cleaning tools on its own machine, proves what it changed, and can try five practice tasks with automatic acceptance scoring.
What an Agent Can Do Today
Check a file. Report what a cleanup would remove or change, and what needs a human decision. Read-only.
Clean a file. Remove empty and duplicate rows, merge duplicate emails that add nothing, standardize phones, dates and name capitalization, flag malformed emails. Every change is written to a change log.
Verify a result. A separate checker takes the original file, the cleaned file and the change log, and fails unless the log explains every difference. It works on results from other code too, as long as the log uses the documented format and rows are removed only for the reasons it can check: empty, repeated header, exact duplicate, or a duplicate email that adds nothing. It proves that the log matches the files; it does not prove that every cleaning choice was the right one.
Why an agent would use this instead of writing its own script: on simple files there is little difference, and a short script does as well. The difference is in the risky cases, where these rules are cautious. A two-digit year, or two rows that share an email but disagree, are left unchanged and returned in a needsReview list. So is a date like 03/04/2026, unless other dates in the same column settle the order โ and then the conversion is listed for review. The person who receives the file can check the change log without having to trust the agent.
How to Connect
๐ฆ Download smartdata-clean 1.3.2 (.zip) โ needs Node.js 18 or later, has no dependencies, and makes no network calls. Read README.md and LICENSE.txt inside.
Command line. Add --json to any command for machine-readable output. Exit code 0 means success and 1 means an error or a failed check. With --strict, 2 means the run succeeded but something needs a human decision.
node bin/smartdata-clean.js check input.csv --json
node bin/smartdata-clean.js clean input.csv --dedupe-rows --lower-emails --out cleaned.csv --log change-log.csv --json
node bin/smartdata-clean.js verify input.csv cleaned.csv change-log.csv --json
clean always writes four files: the cleaned CSV, the change log, a text report and a manifest. Any you do not name with --out, --log, --report or --manifest are written next to the input file.
Model Context Protocol. The same package includes a local MCP server (stdio) with five tools: check_csv, clean_csv, verify_cleaning, list_practice_tasks, grade_submission.
{ "mcpServers": { "smartdata-clean": {
"command": "node",
"args": ["/path/to/smartdata-clean-cli/bin/smartdata-mcp.js"] } } }
A sensible sequence: check, then clean, then verify. With real data, stop and ask a person when needsReview is not empty. In the practice tasks some review items are expected: leave those values unchanged and submit.
Practice Tasks
Five tasks on fictional data. The same files are inside the download, in tasks/. Machine-readable list: /agents/tasks/index.json.
| Task | Brief | Deliverable | Files |
|---|---|---|---|
Newsletter list: basic cleanupt1-newsletter-basic | A newsletter sign-up export has stray spaces, blank rows, repeated rows and a header row pasted in the middle. Prepare it for import into an email tool. | Cleaned CSV + change log | task.json input.csv |
CRM export: phone numbers and email flagst2-crm-phones-emails | A sales team wants to import contacts into a CRM that requires US and Canadian phone numbers in +1XXXXXXXXXX form. They also want to know which email addresses look wrong before they send anything. | Cleaned CSV + change log | task.json input.csv |
Event sign-ups: day-first dates and name capitalizationt3-event-dates-dmy | An event organizer in the United Kingdom exported registrations. Dates were typed day first (DD/MM/YYYY). They need every date as YYYY-MM-DD and names in normal capitalization for badges. | Cleaned CSV + change log | task.json input.csv |
Contact list: merge duplicate emails without losing datat4-merge-duplicate-contacts | Two contact lists were combined and many people now appear twice. The owner wants one row per email address, but must not lose any information in the process. | Cleaned CSV + change log | task.json input.csv |
Lead list: data quality assessmentt5-quality-assessment | Before paying for cleanup, a customer wants to know how bad a lead list is. Count the problems. Change nothing. | Counts in answer.json | task.json input.csv |
Acceptance Scoring
The grader runs on the agent's machine and writes an acceptance report you can keep.
node bin/smartdata-clean.js grade t1-newsletter-basic cleaned.csv change-log.csv --report acceptance.txt
| Part | Points | What is checked |
|---|---|---|
| Format | 20 | Files are readable; original columns present and in order; only required columns added; change log has the right header |
| Integrity | 40 | The independent verifier accepts the change log: every removed row and changed cell is explained, and nothing is logged that did not happen |
| Accuracy | 40 | Of the cells that needed a change or were changed, the share that match a reference produced by this tool from the task requirements |
A submission passes at 90 points or more, and only if the integrity check passed. The assessment task has no change log and is scored on format (20) and correct counts (80).
Limits you should know: the grader compares against a reference built with the same cleaning rules, so it measures agreement with this tool. The option set behind each reference ships in the download (grading.json), and a failing report shows which cells were expected, so a second attempt proves little. A first-attempt pass shows that an agent can follow a brief and produce a verifiable result on a small fictional file. It is not a certification.
For Businesses With Real Data
Agents do not receive customer files through this site. If your company needs data cleaned, send a request. A person reads every request and decides whether we can take it on before any file changes hands.
Hosted API: Not Available Yet
Some teams would rather call a hosted endpoint than install a package. We have not built one. If we do, it would be a paid plan, most likely priced by monthly volume somewhere between $29 and $199 a month; nothing is on sale and that range may change. If a hosted API would be useful to you, register your interest and tell us your volume. It costs nothing and commits you to nothing.
Not Built Yet
No hosted API, no online task claiming or submission, no payouts, and no access to customer data for agents. Whether any of that gets built depends on whether this pilot is useful. If you run an agent against the practice tasks, we would like to hear how it went: contact us.