mcpField
D
data-profiler-mcp

data-profiler-mcp

ローカル
github.com/haiiibinデータ・分析33 週間前に更新

data-profiler-mcp について

data-profiler-mcpは、表形式ファイルの構造化プロファイルを必要とする分析担当者やLLMエージェント向けのMCPサーバーです。一般的な形式に対応し、スキーマ、分布、品質問題、データ型の提案を返します。

主な機能

  1. 01スキーマ、形状、欠損値の概要
  2. 02先頭、末尾、ランダム行のプレビュー
  3. 03列の統計と外れ値の確認
  4. 04データ品質問題の検出
  5. 05メモリ効率のよいデータ型の提案
  6. 06ファイル比較と相関計算

活用シーン

  1. 01CSVの欠損値や重複データを確認
  2. 02列の分布や外れ値を調査
  3. 03ファイル間のスキーマや品質の変化を把握
  4. 04効率的な列のデータ型を選択

MCP 対応

このMCPサーバーは、ローカルの表形式ファイルを分析、プレビュー、調査、比較する7つのJSON出力ツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"haiiibin-data-profiler": {
"command": "uvx",
"args": [
"data-profiler-mcp"
]
}
}
}
起動コマンドuvx data-profiler-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypidata-profiler-mcp0.4.0

ツール

7

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pathstringはい
max_rowsanyいいえ

詳細

data-profiler-mcp

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

LLM があらゆる表形式データファイルを理解できるようにする MCP サーバーです。CSV、Parquet、Excel、JSON ファイルを指定すると、スキーマ、分布、データ品質のフラグ、データ型の提案を構造化 JSON で返します。

df.head() や df.info() をチャットに貼り付けるのはもうやめましょう。アシスタントに 「sales.csv をプロファイルして」 と頼むと、ファイルを読み込み、その内容や問題点、より効率的な読み込み方法を教えてくれます。

data-profiler-mcp のデモ:1 つのプロンプトで、重大度順に並んだデータ品質フラグとメモリを節約するデータ型プランを返します

Claude Desktop、Claude Code、Cursor、または MCP 互換クライアントで動作します。


機能

7 つの特化したツールが、すべて読みやすい JSON を返します。

ツール機能
profile_dataset1 回の呼び出しで概要を取得します。形状、メモリ、欠損値の概要、重複行、列ごとの概要、平易な言葉による品質フラグを返します。
preview_data先頭/末尾、またはランダムに抽出した n 行を実際のレコードとして返します。
column_stats1 つの列を詳しく調べます。完全なパーセンタイル、歪度/尖度、外れ値(IQR)、ヒストグラム、またはテキストの上位値と文字列の長さを返します。
detect_quality_issuesデータ品質を監査します。重複、高い欠損率の列や定数列、テキストとして保存された数値、型が混在する列、余分な空白、ID の可能性が高い列を検出し、重大度別に分類します。
suggest_dtypesメモリ節約や型修正の提案を、推定される節約量とともに返します(テキストから数値への変換、カーディナリティが低い列の category 化、整数/浮動小数点数のダウンキャスト)。
compare_datasets2 つのファイルを比較します。追加/削除された列、データ型の変更、行数の差分、列ごとの 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 をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。