DataClean

io.github.ArceeDevPublished by GitHub account ArceeDevv0.2.0Updated Nov 7, 2026

Profile, clean and validate CSV/Excel data: schemas, dates, numbers, duplicates. Never guesses.

The publisher's own server: Clean

VerifiedStreamable HTTPWeb executableFiles & StorageData & Analytics

Overview

AI-generated overview

DataClean profiles, cleans, normalizes and validates CSV/Excel tables deterministically, flagging ambiguous values instead of guessing.

What you can do
  • Profile tables: detect encoding, delimiter, header row, column types, number locale, date order, nulls, duplicates and a suggested schema
  • Clean tables: trim and repair text, convert numbers, ISO dates, E.164 phones and IBANs, deduplicate rows, and export as CSV, TSV, JSON, JSONL or typed xlsx
  • Validate rows against a schema with type, required, unique, range, length, enum and pattern checks, returning errors with row numbers
  • Normalize a list of up to 10,000 loose values such as amounts, dates, phones or emails
  • Check credit balance and pricing with free helper tools
When to use it
Use it when an assistant has to work with messy spreadsheets or CSV exports and you want values converted by rules rather than guessed. It suits data preparation before analysis, schema checks on incoming files, and normalizing amounts, dates or identifiers from documents.
Requirements
A KeyFlint license key passed as the KEYFLINT_LICENSE environment variable (local stdio install via uvx or the Claude Desktop bundle) or as a Bearer token in the Authorization header for hosted HTTP mode. Credits are purchased for paid tools. Optional environment variables set size and row limits and price overrides.
Before you install
Paid tools consume credits per call, so usage costs money; unreadable input is refused before charging and post-charge failures are refunded. The license key is a secret and must be kept out of shared configs. Cleaned output is written to files or returned to the client, and CSV text cells starting with formula characters are prefixed to prevent spreadsheet formula execution.

Installation

In SourceWeft

  1. Open DataClean in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ArceeDev%2Fdataclean-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "dataclean": {
      "type": "http",
      "url": "https://mcp.keyflint.dev/dataclean/mcp"
    }
  }
}

README

dataclean-mcp

An MCP server that cleans tables deterministically before an AI agent reasons over them. LLMs misread 1.250,50 €, swap day and month in 03/04/2026, choke on NUL bytes and mojibake (Café), and silently drop leading zeros. DataClean fixes these with rules, and it never guesses: an ambiguous value is kept as it was and flagged, and it is converted only when the rest of its column (or a parameter you pass) settles its meaning.

ToolCreditsWhat it does
profile_table1Encoding, delimiter, header row, and for each column: real type (integer, decimal, date, datetime, boolean, email, url, phone, iban, text), number locale, date order, currency, nulls, distinct values, min/max, examples and problems. Also reports duplicate rows and a suggested schema.
clean_table1Returns a clean, typed copy as CSV, TSV, JSON, JSONL or typed .xlsx: text trimmed and repaired, numbers as plain decimals, dates in ISO 8601, phones in E.164, IBANs compacted, rows deduplicated, headers made unique or snake_case. Every value left unconverted is listed with its source row.
validate_schema1Checks every row against a schema (type, required, unique, min/max, min_length/max_length, enum, pattern) and returns errors with their row numbers.
normalize_values1Normalizes a list of up to 10,000 values (amounts, dates, phones, emails…) taken from a document or another tool.
pricing, credits_balance0Free helpers.

Charging works like this:

  • Unreadable input or invalid parameters are refused before any credits are charged.
  • A failure after charging is refunded.

What it fixes

  • Numbers: 1.250,50 €, $1,250.50, 1 234,5, 1'234.50, (45.30), SAP-style 1.250,50-, 12,5 %, EUR 12. The column decides whether a value like 1,250 uses a thousands or a decimal separator. If nothing in the column decides it, number_locale does, and without either the value is flagged ambiguous_number.
  • Dates: ISO, 13/04/2026 (day-first), 04/13/2026 (month-first), 5 de marzo de 2026, March 5, 2026, 5-Mar-26, 3. März 2026, and times with am/pm. 03/04/2026 is converted only when another value in the column, or date_order, settles the order. Dates in the minority order are flagged date_order_conflict.
  • Text: removes NUL, control and zero-width characters, turns NBSP into a normal space, repairs mojibake, applies Unicode NFC, and collapses and trims spaces. Null markers (NULL, N/A, #N/A, -, nan…) become empty.
  • IDs: digit strings with leading zeros or more than 15 digits (zip codes, card numbers, references) stay text and are never turned into numbers.
  • Files: CSV in UTF-8, UTF-16 or Windows-1252, delimiter detected automatically (, ; tab |), title rows above the header skipped, ragged rows padded, duplicate or empty headers renamed. Also reads .xlsx (via base64) and JSON/JSONL.
  • Safety: in CSV output, text cells starting with = + - @ get a ' prefix so spreadsheets do not run them as formulas. In .xlsx output they are stored as strings. Schema regexes with nested quantifiers are refused (ReDoS).

Install

  1. Buy credits at https://mcp.keyflint.dev to get a license (LIC-...).
  2. Add the server to your client:
json
{  "mcpServers": {    "dataclean": {      "command": "uvx",      "args": ["dataclean-mcp"],      "env": { "KEYFLINT_LICENSE": "LIC-..." }    }  }}

Claude Desktop also installs the .mcpb bundle attached to each GitHub release. Hosted mode runs dataclean-mcp --http (or uses the Dockerfile) and reads the license from each request's Authorization: Bearer LIC-... header.

Limits (set by environment variables): DATACLEAN_MAX_BYTES (20 MB), DATACLEAN_MAX_ROWS (200,000), DATACLEAN_MAX_OUTPUT (15 MB). Credit prices can be overridden with DATACLEAN_PRICES=clean_table=2,....

Visual cards (MCP Apps)

In Claude, ChatGPT, VS Code and Goose every paid tool and credits_balance renders as an interactive card in the chat: credit balance with a refill bar and a buy button, or a result summary (key figures, issues, table preview and credits charged). It is the ui://dataclean/card.html resource, self-contained with no network access. Other clients keep getting the same JSON as before.

Tests

bash
pip install -e '.[test]'pytest -q

The tests use a fake KeyFlint gateway and locally signed licenses, so they need no network.

License

Business Source License 1.1. Production use requires a KeyFlint license from the Licensor. On 2030-11-05 the code becomes Apache 2.0.

Source: README.md at commit d698242

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.2.0LatestNov 7, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Clean integrations