data-profiler-mcp について
data-profiler-mcpは、表形式ファイルの構造化プロファイルを必要とする分析担当者やLLMエージェント向けのMCPサーバーです。一般的な形式に対応し、スキーマ、分布、品質問題、データ型の提案を返します。
主な機能
- 01スキーマ、形状、欠損値の概要
- 02先頭、末尾、ランダム行のプレビュー
- 03列の統計と外れ値の確認
- 04データ品質問題の検出
- 05メモリ効率のよいデータ型の提案
- 06ファイル比較と相関計算
活用シーン
- 01CSVの欠損値や重複データを確認
- 02列の分布や外れ値を調査
- 03ファイル間のスキーマや品質の変化を把握
- 04効率的な列のデータ型を選択
MCP 対応
このMCPサーバーは、ローカルの表形式ファイルを分析、プレビュー、調査、比較する7つのJSON出力ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | |
| max_rows | any | いいえ |
詳細
data-profiler-mcp
LLM があらゆる表形式データファイルを理解できるようにする MCP サーバーです。CSV、Parquet、Excel、JSON ファイルを指定すると、スキーマ、分布、データ品質のフラグ、データ型の提案を構造化 JSON で返します。
df.head() や df.info() をチャットに貼り付けるのはもうやめましょう。アシスタントに 「sales.csv をプロファイルして」 と頼むと、ファイルを読み込み、その内容や問題点、より効率的な読み込み方法を教えてくれます。

Claude Desktop、Claude Code、Cursor、または MCP 互換クライアントで動作します。
機能
7 つの特化したツールが、すべて読みやすい JSON を返します。
| ツール | 機能 |
|---|---|
profile_dataset | 1 回の呼び出しで概要を取得します。形状、メモリ、欠損値の概要、重複行、列ごとの概要、平易な言葉による品質フラグを返します。 |
preview_data | 先頭/末尾、またはランダムに抽出した n 行を実際のレコードとして返します。 |
column_stats | 1 つの列を詳しく調べます。完全なパーセンタイル、歪度/尖度、外れ値(IQR)、ヒストグラム、またはテキストの上位値と文字列の長さを返します。 |
detect_quality_issues | データ品質を監査します。重複、高い欠損率の列や定数列、テキストとして保存された数値、型が混在する列、余分な空白、ID の可能性が高い列を検出し、重大度別に分類します。 |
suggest_dtypes | メモリ節約や型修正の提案を、推定される節約量とともに返します(テキストから数値への変換、カーディナリティが低い列の category 化、整数/浮動小数点数のダウンキャスト)。 |
compare_datasets | 2 つのファイルを比較します。追加/削除された列、データ型の変更、行数の差分、列ごとの NULL 率と平均値を並べて表示します。 |
correlation_matrix | 数値列間の相関(Pearson/Spearman/Kendall)を調べます。強さ順に並べたペア、|r| >= 0.9 の多重共線性フラグ、column を使ったターゲット対その他の列の順位を返します。 |
対応形式は CSV、TSV、Parquet、Excel(.xlsx/.xls)、JSON、JSON Lines です。大きなファイルは行数の上限まで読み込み、サンプリング済みであることを明示します。
手元にデータセットがありませんか?examples/sample.csv は、意図的に品質上の問題(地域の欠損、重複行、定数列、余分な空白)を含めた小規模な売上データです。アシスタントに 「examples/sample.csv をプロファイルして」 と頼み、どのような問題が検出されるか確認してください。
インストール
試すだけならインストールは不要です。Glama サーバーページを開き、Try in Browser を使ってサンドボックス上でツールを呼び出してください(このリポジトリには、プロファイル対象の examples/sample.csv が /app/examples/sample.csv に含まれています)。
Python 3.10 以降が必要です。
MCP Python SDK 2.x(mcp>=2,<3)が必要です。SDK 1.x は上流で機能追加が停止しており、ここではサポートされなくなりました。0.3.0 が、SDK 1.x で動作した最後のリリースです。
# with uv (recommended)
uv tool install data-profiler-mcp
# or with pip
pip install data-profiler-mcp
または、インストールせずにソースから直接実行できます。
git clone https://github.com/haiiibin/data-profiler-mcp
cd data-profiler-mcp
uv run data-profiler-mcp
クライアントの設定
Claude Desktop
claude_desktop_config.json(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)を編集し、以下を追加します。
{
"mcpServers": {
"data-profiler": {
"command": "data-profiler-mcp"
}
}
}
インストールせずにソースから実行する場合は、チェックアウト先を指定します。
{
"mcpServers": {
"data-profiler": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/data-profiler-mcp", "run", "data-profiler-mcp"]
}
}
}
Claude Desktop を再起動すると、プラグアイコンの下にツールが表示されます。
Claude Code
claude mcp add data-profiler -- data-profiler-mcp
使用方法
接続したら、アシスタントに話しかけるだけです。
- 「
~/data/sales_2025.csvのプロファイルを作成して、どんなデータが含まれているか教えてください。」 - 「
customers.parquetにデータ品質上の問題はありますか?」 - 「
events.jsonlからランダムな行を20件表示してください。」 - 「外れ値を含め、
revenue列の統計情報をすべて教えてください。」 - 「この DataFrame のメモリ使用量を減らすにはどうすればよいですか?」
- 「
snapshot_jan.csvとsnapshot_feb.csvの間で何が変わりましたか?」
例:profile_dataset
{
"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."
]
}
例:detect_quality_issues
{
"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." }
]
}
仕組み
このサーバーは MCP Python SDK の MCPServer を基盤としており、pandas を使ってファイルを読み込みます(Parquet には pyarrow、Excel には openpyxl も使用します)。各ツールは、NumPy のスカラー値、NaN/inf、タイムスタンプを正規化した、JSON にシリアライズ可能なプレーンな dict を返します。そのため、出力をそのままモデルに渡しても安全です。ディスクへの書き込みは行わず、データがマシンの外に出ることもありません。
開発
uv venv
uv pip install -e ".[dev]"
uv run pytest
ライセンス
MIT です。詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。