Profiles local CSV, TSV, Parquet, Excel, and JSON files with statistics, quality checks, previews, and dtype recommendations.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
This server is confirmed live — we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Data Profiler MCP.
profile_datasetProfile a tabular data file in one call: the fastest way to understand a dataset. Reads the file at ``path`` (CSV, TSV, Parquet, Excel or JSON/JSONL, detected from the extension) and returns a structured overview: - file metadata (format, size), - shape (row and column counts, and whether the profile was sampled), - total memory footprint, - a missing-value summary and a duplicate-row count, - a per-column summary (dtype, inferred type, null %, unique %, sample values, and basic stats for numeric/datetime columns), and - a list of plain-language data-quality flags. Use this first whenever a user points you at a data file and wants to know what is in it. ``max_rows`` caps how many rows are read (default: up to one million); the result flags when the file was larger and the stats are a head sample. Pass 0 to remove the cap entirely.
preview_dataPeek at actual rows of a data file. Returns ``n`` rows (capped at 100) as records. ``mode`` selects which rows: ``head`` (default), ``tail``, or ``sample`` (random). Use this to see real example values rather than just statistics, for example to check formatting, encodings, or how a specific column looks in practice.
column_statsDeep statistical dive on a single column. For numeric columns: min/max, mean, std, a full set of percentiles (p1/p5/q1/median/q3/p95/p99), skewness, kurtosis, zero and negative counts, an IQR-based outlier count with bounds, and a 10-bin histogram. For datetime columns: the min and max timestamp. For text/categorical columns: the top values with counts and percentages, plus string-length statistics. Reach for this after ``profile_dataset`` when one column needs closer inspection. Raises an error listing the available columns if ``column`` is not found.
detect_quality_issuesRun a focused data-quality audit and return issues grouped by severity. Detects duplicate rows, all-missing and high-missing columns, constant columns, likely identifier columns, numbers stored as text, dates stored as text, columns mixing numeric and text values, leading/trailing whitespace, and empty (whitespace-only) strings. Each issue carries a column (or ``null`` for table-level), an issue code, a severity (``high``/``warning``/``info``), and a plain-language explanation. Use this when the user cares specifically about cleanliness, is preparing data for modeling, or asks "is anything wrong with this data?".
suggest_dtypesRecommend more memory-efficient or more-correct column dtypes. For each column, proposes a better dtype when one exists: text that is fully numeric to a numeric type, low-cardinality text to ``category``, and oversized integer/float columns downcast to smaller types. Reports per-column and total estimated memory savings. Use this to help a user shrink a DataFrame's memory footprint or fix columns that were loaded with the wrong type.
compare_datasetsDiff two tabular files: what changed between version A and version B. Reports the row-count delta, columns added or removed in B, dtype changes on shared columns, and per-column null-rate (and, for numeric columns, mean) for both files side by side. Use this to compare two snapshots of the same dataset, validate a data pipeline's output against a baseline, or check what a transformation changed.
The haiiibin/data-profiler-mcp MCP server gives an MCP-compatible agent tools for examining tabular files stored on the local filesystem. Supported inputs are CSV, TSV, Parquet, Excel files with .xlsx or .xls extensions, JSON, and JSON Lines. The server detects the format from the filename and returns JSON-serializable results rather than requiring users to paste dataframe output into a conversation.
A full profile includes file format and size, row and column counts, whether the data was sampled, total memory usage, missing-value totals, duplicate-row counts, and per-column details. Column summaries can include the pandas dtype, inferred type, null and uniqueness percentages, sample values, and basic numeric or datetime statistics. Plain-language quality flags help surface problems found during profiling.
The haiiibin/data-profiler-mcp MCP server is implemented in Python with FastMCP and reads data through pandas. Parquet support uses pyarrow, while Excel support uses openpyxl. Results are normalized for JSON output, including NumPy values, timestamps, NaN, and infinity values.
profile_dataset reads a file and produces the broadest overview in one call. preview_data returns actual records from the beginning, end, or a random sample of the file, with a maximum of 100 rows. column_stats provides a more detailed analysis for one selected column, including percentiles and IQR outlier counts for numeric data, date bounds for datetime data, or frequent values and string lengths for text.
Python 3.10 or newer is required. Install the package with either of these commands:
After installation, configure an MCP client to run the data-profiler-mcp executable. For Claude Desktop, add a server entry whose command is data-profiler-mcp, then restart the application. The repository also documents running from a source checkout with uv run data-profiler-mcp, and provides a Claude Code command using claude mcp add.
No API key or remote service is required. The server reads files locally and does not write output to disk or send dataset contents away from the machine.
The haiiibin/data-profiler-mcp MCP server provides these listed tools:
profile_dataset: Create a broad overview, with an optional max_rows cap. The default reads up to one million rows; passing 0 removes that cap.preview_data: Return head, tail, or random records for inspecting real values.column_stats: Analyze one numeric, datetime, text, or categorical column in detail.detect_quality_issues: Group findings by high, warning, or info severity. Checks include duplicates, missing or constant columns, likely identifiers, numeric or date text, mixed types, whitespace, and empty strings.suggest_dtypes: Recommend numeric conversion, categorical types, or smaller integer and float types, with estimated memory savings.compare_datasets: Compare two files for row-count changes, added or removed columns, dtype changes, and per-column null rates and numeric means.Profiles may represent only the beginning of a large file when the row cap is reached; the result identifies when sampling occurred. Preview output is capped at 100 rows. The tools operate on paths accessible to the local process, so the MCP client must be able to read the referenced files. The project is MIT licensed.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/haiiibin-data-profiler-mcp)<a href="https://allmcps.com/mcp/haiiibin-data-profiler-mcp"><img src="https://allmcps.com/api/badge/haiiibin-data-profiler-mcp?style=directory" alt="Data Profiler MCP on AllMCPs" /></a>