Data Profiler Mcp

io.github.haiiibin由 GitHub 帳號 haiiibin 發布v0.4.0更新於 Oct 24, 2026

Profiles CSV/Parquet/Excel/JSON files: schema, stats, quality flags and dtype tips for LLM agents.

已驗證STDIO僅桌面檔案與儲存資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理剖析 CSV、Parquet、Excel 或 JSON 檔案,並以 JSON 回傳結構、統計與資料品質標記。

可以做什麼
  • 一次呼叫完成整份檔案剖析:形狀、記憶體用量、缺失值、重複列與逐欄摘要
  • 預覽資料集的前幾列、後幾列或隨機若干列
  • 深入分析單一欄位:百分位、偏態、離群值、直方圖或高頻值
  • 資料品質稽核:重複、高缺失與常數欄位、以文字儲存的數字、混合型別、空白填充
  • 提供節省記憶體的型別轉換建議與預估節省量
  • 比較兩個檔案的差異,並計算數值欄位之間的相關矩陣
適用情境
適合在撰寫分析程式前讓助理先了解本機表格檔案的內容、檢查資料集的品質問題,或比較同一份資料的兩個快照,而不必把 dataframe 輸出貼進對話。
執行需求
以本機 stdio 程序在使用者電腦上執行(僅桌面端)。需要 Python 3.10+ 與 MCP Python SDK 2.x,可用 uv 或 pip 安裝,也可直接從原始碼執行。未宣告任何帳號、API 金鑰或環境變數。
安裝前請注意
助理會讀取被指定的任意檔案路徑,請只指向願意提供給模型的資料。README 稱不寫入磁碟、資料不離開本機,但檔案內容會作為工具輸出回傳給模型。大型檔案會依列數上限讀取並標示為抽樣。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Data Profiler Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

data-profiler-mcp

[CI] [PyPI] [PyPI Downloads] [Python] [Glama] [MCP Registry] [Listed in awesome-mcp-servers] [License: MIT]

An MCP server that lets an LLM understand any tabular data file: point it at a CSV, Parquet, Excel or JSON file and get schema, distributions, data-quality flags and dtype suggestions back as structured JSON.

Stop pasting df.head() and df.info() into chat. Ask your assistant "profile sales.csv" and it reads the file itself, then tells you what is in it, what is wrong with it, and how to load it more efficiently.

[data-profiler-mcp demo: one prompt returns severity-ranked data-quality flags and a memory-saving dtype plan]

Works with Claude Desktop, Claude Code, Cursor, or any MCP-compatible client.


Features

Seven focused tools, all returning clean JSON:

ToolWhat it does
profile_datasetOne-call overview: shape, memory, missing-value summary, duplicate rows, a per-column summary, and plain-language quality flags.
preview_dataThe first / last / a random sample of n rows as real records.
column_statsDeep dive on one column: full percentiles, skew/kurtosis, outliers (IQR), a histogram, or top values + string lengths for text.
detect_quality_issuesA data-quality audit: duplicates, high-missing and constant columns, numbers stored as text, mixed-type columns, whitespace padding, likely IDs, grouped by severity.
suggest_dtypesMemory-saving / type-fixing recommendations (text to numeric, low-cardinality to category, integer/float downcasting) with estimated savings.
compare_datasetsDiff two files: added/removed columns, dtype changes, row-count delta, and per-column null-rate and mean side by side.
correlation_matrixCorrelations between numeric columns (Pearson / Spearman / Kendall): pairs ranked by strength, multicollinearity flags at |r| >= 0.9, and target-vs-rest ranking via column.

Supported formats: CSV, TSV, Parquet, Excel (.xlsx/.xls), JSON and JSON Lines. Large files are read up to a row cap and clearly flagged as sampled.

No dataset at hand? examples/sample.csv is a small sales export with deliberate quality issues (missing regions, a duplicate row, a constant column, whitespace padding) -- ask your assistant to "profile examples/sample.csv" and see what it flags.


Install

No install needed to try it: open the Glama server page and use Try in Browser to call the tools against a sandbox (the repo ships examples/sample.csv at /app/examples/sample.csv to profile).

Requires Python 3.10+.

Requires MCP Python SDK 2.x (mcp>=2,<3). SDK 1.x is feature-frozen upstream and no longer supported here; 0.3.0 is the last release that ran on it.

bash
# with uv (recommended)uv tool install data-profiler-mcp
# or with pippip install data-profiler-mcp

Or run it straight from source without installing:

bash
git clone https://github.com/haiiibin/data-profiler-mcpcd data-profiler-mcpuv run data-profiler-mcp

Configure your client

Claude Desktop

Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\) and add:

json
{  "mcpServers": {    "data-profiler": {      "command": "data-profiler-mcp"    }  }}

Running from source instead of installing? Point it at the checkout:

json
{  "mcpServers": {    "data-profiler": {      "command": "uv",      "args": ["--directory", "/absolute/path/to/data-profiler-mcp", "run", "data-profiler-mcp"]    }  }}

Restart Claude Desktop and the tools appear under the plug icon.

Claude Code

bash
claude mcp add data-profiler -- data-profiler-mcp

Usage

Once connected, just talk to your assistant:

  • "Profile ~/data/sales_2025.csv and tell me what's in it."
  • "Are there any data-quality problems in customers.parquet?"
  • "Show me 20 random rows from events.jsonl."
  • "Give me full stats for the revenue column, including outliers."
  • "How can I shrink this DataFrame's memory usage?"
  • "What changed between snapshot_jan.csv and snapshot_feb.csv?"

Example: profile_dataset

jsonc
{  "file": { "name": "sample.csv", "format": "csv", "size_human": "14.2 KB" },  "shape": { "rows": 201, "columns": 13, "sampled": false },  "memory_usage_human": "78.4 KB",  "missing_summary": { "total_missing_cells": 561, "pct_missing": 21.5, "columns_with_missing": 3 },  "duplicate_rows": { "count": 1, "pct": 0.5 },  "columns": [    {      "name": "price", "dtype": "float64", "inferred_type": "float",      "non_null": 201, "null": 0, "unique": 51,      "stats": { "min": 0.0, "max": 100000.0, "mean": 521.3, "median": 24.0 }    }  ],  "quality_flags": [    "[high] empty_col: Column is entirely empty (all values missing).",    "[warning] const: Column holds a single constant value; it carries no information.",    "[warning] numeric_text: Every value parses as a number but the column is stored as text."  ]}

Example: detect_quality_issues

jsonc
{  "issue_count": 8,  "severity_counts": { "high": 2, "warning": 4, "info": 2 },  "issues": [    { "column": "empty_col", "issue": "all_missing", "severity": "high",      "detail": "Column is entirely empty (all values missing)." },    { "column": "numeric_text", "issue": "numeric_stored_as_text", "severity": "warning",      "detail": "Every value parses as a number but the column is stored as text." }  ]}

How it works

The server is built on the MCP Python SDK's MCPServer and reads files with pandas (plus pyarrow for Parquet and openpyxl for Excel). Every tool returns a plain, JSON-serializable dict, with NumPy scalars, NaN/inf and timestamps normalized so the output is safe to hand straight back to a model. Nothing is written to disk and no data leaves your machine.


Development

bash
uv venvuv pip install -e ".[dev]"uv run pytest

License

MIT. See LICENSE.

來源:README.md,提交 901c557

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.4.0最新Oct 9, 2026
  2. v0.3.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分