mcpField
S
Stats Explorer

Stats Explorer

ローカル
github.comデータ・分析05 日前に更新

Stats Explorer について

Stats Explorer は、ローカルデータの統計分析を AI アシスタントから行う MCP サーバーです。確認を挟む検定や探索、解釈しやすい結果、Jev による任意の独立チェックを備えています。

主な機能

  1. 0118 種類の統計・分析ツール
  2. 02検定と A/B テスト分析
  3. 036 段階の仮説検定ワークフロー
  4. 04ローカルの CSV、TSV、Excel、Parquet ファイル
  5. 05グラフと HTML または Markdown レポート
  6. 06Jev による任意のレビュー

活用シーン

  1. 01実験の各バリアントがコンバージョンを変えるか検定
  2. 02分布の探索とカテゴリ別集計
  3. 03グループを比較し差のある組み合わせを特定
  4. 04確認済みの分析からレポートを作成

MCP 対応

MCP クライアントに統計・分析ツールを提供し、許可されたローカルデータファイルを分析できます。任意のチェックのために Jev MCP サーバーとの接続にも対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"meador793-stats-explorer": {
"command": "npx",
"args": [
"-y",
"stats-explorer-mcp"
],
"env": {
"STATS_EXPLORER_ROOTS": "<STATS_EXPLORER_ROOTS>",
"STATS_EXPLORER_STREAM_MB": "<STATS_EXPLORER_STREAM_MB>",
"STATS_EXPLORER_WORKERS": "<STATS_EXPLORER_WORKERS>",
"STATS_EXPLORER_CACHE": "<STATS_EXPLORER_CACHE>",
"STATS_EXPLORER_CACHE_DIR": "<STATS_EXPLORER_CACHE_DIR>",
"STATS_EXPLORER_MAX_FILE_MB": "<STATS_EXPLORER_MAX_FILE_MB>",
"STATS_EXPLORER_GUIDED": "<STATS_EXPLORER_GUIDED>",
"STATS_EXPLORER_CONFIRM_SELECTIONS": "<STATS_EXPLORER_CONFIRM_SELECTIONS>",
"STATS_EXPLORER_CONFIRM_VIA": "<STATS_EXPLORER_CONFIRM_VIA>",
"STATS_EXPLORER_HIDE_LINK": "<STATS_EXPLORER_HIDE_LINK>",
"STATS_EXPLORER_JEV": "<STATS_EXPLORER_JEV>",
"STATS_EXPLORER_JEV_CHECKPOINTS": "<STATS_EXPLORER_JEV_CHECKPOINTS>",
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>",
"STATS_EXPLORER_APPROVAL_SECRET": "<STATS_EXPLORER_APPROVAL_SECRET>",
"STATS_EXPLORER_AUDIT_LOG": "<STATS_EXPLORER_AUDIT_LOG>"
}
}
}
}
起動コマンドnpx -y stats-explorer-mcp
設定が必要な環境変数
STATS_EXPLORER_ROOTSFolders the tools may read data files from and write reports to (separated by : on macOS/Linux, ; on Windows). Defaults to the client's workspace roots, or the current directory.
STATS_EXPLORER_STREAM_MBCSV/TSV/Parquet files above this size (MB) are streamed in parallel passes; any size works. Default 512.
STATS_EXPLORER_WORKERSParallel readers for large files. Default: all CPU cores but one (max 16).
STATS_EXPLORER_CACHEKeep columns read from large files for fast follow-up questions: ask (default), on or off.
STATS_EXPLORER_CACHE_DIRFolder for saved large-file columns. Default: the system temp folder.
STATS_EXPLORER_MAX_FILE_MBRefuse data files larger than this (MB). Default: no limit.
STATS_EXPLORER_GUIDEDon (default): classify each request and follow the six-step workflow for hypothesis tests. off: expose the individual test tools directly.
STATS_EXPLORER_CONFIRM_SELECTIONSon (default): the user confirms every column, chart type and report section before anything runs. off: run with the AI's choices.
STATS_EXPLORER_CONFIRM_VIAauto (default): forms where the client supports them. chat: always ask in the conversation (recommended for Claude Code).
STATS_EXPLORER_HIDE_LINKSet to 1 to remove the one-line Stats Explorer app link from results.
STATS_EXPLORER_JEVIndependent checks by Jev (TypeSafe): off (default), cooperate (the AI calls your Jev MCP server), enforce (Stats Explorer calls the Jev API) or orchestrated (signed decisions from an orchestrator).
STATS_EXPLORER_JEV_CHECKPOINTSComma list of plan, conclusions, data. Default plan,conclusions (data sends column names and text samples to Jev).
TYPESAFE_API_KEYシークレットEnforce mode only: TypeSafe API key Stats Explorer uses to call Jev.
STATS_EXPLORER_APPROVAL_SECRETシークレットOrchestrated mode only: shared secret (32+ characters) the orchestrator signs decisions with.
STATS_EXPLORER_AUDIT_LOGPath of a JSON Lines file recording every Jev checkpoint decision.

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

パッケージ
npmstats-explorer-mcp1.5.1

ツール

23

掲載時のツール一覧 · 5 日前に更新

パラメーター型必須説明
filestringいいえユーザーが指定した、またはチャットに添付したデータファイル(CSV、TSV、Excel、Parquet):内容ではなく、パスまたは名前を渡してください。大きなファイルも使用できます。
modeenumはい記述、比較、順位付け、要約、グラフ化、パターンの発見(多くの分析上の質問)には "explore"。差や関係が有意か、実在するかを問う場合は "hypothesis_test"。hypothesis_test | explore
questionstringはいユーザー自身の言葉による依頼。

詳細

Stats Explorer MCP

Stats Explorer MCP:数値を推測する代わりに、AI アシスタントが呼び出す検証済み統計

統計プロトコル(MCP)サーバーです。あらゆるサイズのデータファイルを対象に、AI アシスタントが数値を推測する代わりに呼び出せる、18 種類の統計・分析ツールを提供します。

  • 検定: t 検定、z 検定、ANOVA(差のあるグループを特定する Tukey HSD 事後検定付き)、ANCOVA、MANOVA、カイ二乗検定、Fisher の正確確率検定、二項検定、相関分析。
  • A/B テスト: コンバージョン率や収益系指標の A/B および A/B/n の結果(区間付きリフト、サンプル比率の不一致チェック、Holm 補正済み比較、対照群を上回るベイズ確率、セグメント別内訳)と、サンプルサイズの計画。
  • 分析: カテゴリ別の合計、平均、件数(上位 N 件)と、すべての列を対象に「X を左右する要因は何か?」をランキング形式で表示します。
  • 補助ツール: 記述統計、信頼区間、検出力分析、「どの検定を使うべきか?」を判断するツール、データファイルのインスペクター。

各ツールは列名を指定して開発者の CSV、TSV、Excel、Parquet ファイルを読み取れるため、大規模なデータセットをチャットに貼り付ける必要はありません。各結果には次の情報が含まれます。

  • 効果量と信頼区間
  • 平易な言葉での解釈
  • 仮定に懸念がある場合の警告

さらに、次の特長があります。

  • 正確です。 コミットごとに、43 件の参照ケースを SciPy および statsmodels と照合し、有効数字 6 桁以上の精度を確認しています。
  • デフォルトでガイドします。 エージェントはまず、依頼に仮説検定が必要か、探索だけでよいかを判断します。仮説検定は、Stats Explorer の Bring it all together ガイドに沿って、6 つの手順を順番に実行します。
  • 主導権はユーザーにあります。 エージェントが提案する列、グループ、グラフの種類、レポートのセクションは、実行前にすべて表示され、確認や変更ができます。
  • プライベートです。 stdio 経由でローカル実行します。ネットワークへの接続は行わず、API キーも不要です(後述の Jev の強制モードを有効にする場合を除く)。データファイルはワークスペースのフォルダーからのみ読み取ります。
  • 必要に応じて Jev がチェックします。 TypeSafe の高速な判定モデルである Jev を接続すると、Jev がテスト計画とアシスタントの文章による結論を、計算結果と照らし合わせて独立に確認します。オーケストレーターを使わず、Stats Explorer 自体によって強制する方法でも、すべての判断に署名する本番用オーケストレーターの下で実行する方法でも利用できます。

エンジン、ファイルのインポート機能、6 ステップのガイドは、Stats Explorer アプリと共有されているため、結果はアプリと完全に一致します。

接続方法(アシスタントを選択)

VS Code の GitHub Copilot:およそ 1 分で完了、追加インストール不要
  1. VS Code で 拡張機能(Ctrl+Shift+X / Cmd+Shift+X)を開き、Stats Explorer MCP を検索して インストールをクリックします。
  2. Copilot Chat を開き、モードのドロップダウンを Agent に切り替えます。
  3. チャットボックスの ツールアイコンをクリックし、Stats Explorer が一覧に表示され、チェックされていることを確認します。
  4. データを含むフォルダーを開き、質問します(質問例を参照)。

この拡張機能は VS Code に組み込まれたランタイムを使ってサーバーを登録するため、Node.js や mcp.json ファイルは不要です。確認画面は編集可能なフォームとして表示されます。

Claude Code(ターミナルまたは VS Code の Claude Code パネル):約 2 分

Node.js 22 以降(24 LTS 推奨)が必要です。ターミナルで次のコマンドを一度実行してください。

claude mcp add -s user stats-explorer -e STATS_EXPLORER_CONFIRM_VIA=chat -- npx -y stats-explorer-mcp
claude mcp list

claude mcp list に stats-explorer … ✓ Connected と表示されるはずです。サーバーはセッション開始時に読み込まれるため、その後 新しい Claude セッションを開始してください。VS Code では、Ctrl+Shift+P → Developer: Reload Window を実行してから、New session を選択します。チャットで /mcp と入力すると、そのセッションで利用できるサーバーを確認できます。

  • -s user を指定すると、すべてのフォルダーで利用できます(指定しない場合は、コマンドを実行したフォルダーでのみ利用できます)。
  • STATS_EXPLORER_CONFIRM_VIA=chat を設定すると、確認メッセージがチャットに表示され、返信して回答できます。Claude Code では、フォーム形式のプロンプトが常に表示されるとは限りません。
  • VS Code 拡張機能をインストールしている場合、Stats Explorer: Copy Setup Command for Claude Code を選択すると、このコマンドがコピーされます。
Claude Desktop、Cursor、Windsurf、Cline、その他の MCP クライアント

クライアントの MCP 設定(claude_desktop_config.json、.cursor/mcp.json など)に以下を追加してから、クライアントを再起動してください。

{
  "mcpServers": {
    "stats-explorer": {
      "command": "npx",
      "args": ["-y", "stats-explorer-mcp"],
      "env": { "STATS_EXPLORER_ROOTS": "/path/to/your/data", "STATS_EXPLORER_CONFIRM_VIA": "chat" }
    }
  }
}

Node.js 22 以降が必要です。STATS_EXPLORER_ROOTS はツールが読み取り可能なフォルダー(複数可)です。データファイルを参照してください。

質問の例

メッセージ内でファイル名を指定するか、ファイルを添付してください。アシスタントはそれをツールに渡し、データをチャットに貼り付けることはありません。

  • sales.csv の内容を教えてください。
  • sales.csv の州別売上合計を上位 10 件まで教えてください。(group_summary)
  • sales.csv の利益を左右する要因は何ですか?(find_relationships、その後に追加質問)
  • 注文金額の分布と、セグメント別の箱ひげ図を表示してください。
  • Consumer セグメントと Business セグメントで平均利益に差はありますか?統計的に有意ですか?(6 段階の仮説検定)
  • experiment.csv で、新しいチェックアウトページ(バリアント B)はコンバージョン率を高めましたか?デバイス別に分析してください。(ab_test)
  • コンバージョン率 4%に対して 10%の上昇を検出するには、1 日 3,000 人の訪問者がいる場合、訪問者は何人必要ですか?(ab_test_plan)
  • 3 つの地域で売上に差はありますか?差があるのはどの地域ですか?(ANOVA + Tukey HSD)
  • 分析結果の HTML レポートを作成し、findings.html として保存してください。

analyze、explore_data、hypothesis_test のプロンプト(VS Code と Claude のスラッシュコマンド)から、同じワークフローを開始できます。

Jev との連携(任意)

Stats Explorer と Jev MCP サーバーの両方を Claude または Copilot に接続すると、それぞれが役割を分担します。Stats Explorer がすべての数値を計算し、結果が表示される前に Jev が次の 2 点を確認します。

  • **検定計画:**適切な検定か、仮説は正しいか、対象の列は適切か。
  • **記述された結論:**すべての数値が一致しているか、「有意」という表現が正しく使われているか、分析で裏付けられない因果関係の主張が含まれていないか。

Stats Explorer も、すべての主張について独自に数値と有意性を確認します。確認を通過した主張のみがレポートに記載され、各レポートには 独立した確認 の下にすべての確認内容が一覧表示されます。

モードSTATS_EXPLORER_JEV の設定値Jev を呼び出すもの適した用途
協調cooperateStats Explorer が準備したパケットを使い、アシスタントが Jev MCP サーバーを通じて呼び出しますオーケストレーションツールを使わずに Claude Code または Copilot で作業する場合
強制enforce(および TYPESAFE_API_KEY)Stats Explorer が Jev API を直接呼び出しますアシスタントが省略または変更できない確認
オーケストレーションorchestrated(および STATS_EXPLORER_APPROVAL_SECRET)各判断に署名するオーケストレーター(LangGraph、Temporal、Step Functions など)監査ログを備えた本番パイプライン

Claude Code ですぐに始める場合(オーケストレーター不要):

claude mcp add -s user jev -e TYPESAFE_API_KEY=YOUR_KEY -- npx -y @jkudish/jev-mcp
claude mcp add -s user stats-explorer -e STATS_EXPLORER_JEV=cooperate -e STATS_EXPLORER_CONFIRM_VIA=chat -- npx -y stats-explorer-mcp
npx -y stats-explorer-mcp init-jev     # adds routing rules to CLAUDE.md and .github/copilot-instructions.md

どの Jev MCP サーバーでも動作します(@jkudish/jev-mcp、jev-mcp、typesafe-mcp など)。パケットは各サーバーのツールが受け付ける形式で送信されます。VS Code では、Stats Explorer › Jev: Mode を設定してください。各モードと設定、署名付き承認の形式(JavaScript と Python)、Jev に送信される内容、および実行可能なオーケストレーターの例(examples/orchestrator/)については、docs/JEV.md を参照してください。

仕組み(デフォルト)

1. エージェントがリクエストを分類します

すべての分析は start_analysis から始まり、エージェントがモードを選択します。

リクエストの例モード実行内容
「薬によってスコアは変わりますか?」「AはBより優れていますか?」「この差は有意ですか?」hypothesis_test以下の6ステップのワークフロー
「要約してください……」「……の分布を見せてください」「XをY別にグラフにしてください」「信頼区間付きの平均値は?」explore記述統計ツールとグラフのみ。仮説、p値、レポートの仮説セクションは含まれません

不明確な場合は、エージェントが質問するよう指示されています。start_analysis が呼び出されるまで、ほかの処理は実行されません。

2. 仮説検定は6つのステップを順番に実行します
ステップ(アプリの「学ぶ」タブより)ツール
1. 質問を明確にし、適切な検定を選ぶstate_hypotheses:検定、列、グループ、H₀/H₁、方向、αを指定します。結果を見る前に固定されます
2. 検定の前提条件に照らしてデータを検証するcheck_assumptions:形状、歪みのある小標本、グループサイズ、外れ値、期待度数、ANCOVAの傾きの等質性、欠損値、「サンプルから欠けているのは誰か?」を確認します
3. ばらつきを確認するcheck_spread:SD、IQR、変動係数、外れ値、分散比を確認します
4. 検定を実行する前に検出力を計算するpower_analysis:あなたが重視する最小効果に対する検出力と、80%の検出力に必要なnを算出します
5. 検定を実行し、結果を誠実に報告するrun_test:ステップ1で確認した検定をそのまま実行し、p値、効果量、CI、判定を提示します
6. まれな事象をベースレートと照らして妥当性を確認するbase_rate_check(PPV/NPV)、またはまれな事象に関する質問でない場合は理由を添えて skip_step

順序どおりでないステップの呼び出しは拒否され、次に実行すべきステップを示すメッセージが返されます。スキップできるのはステップ4と6のみで、レポートに記載される理由が必要です。ステップ2で選択した検定が適合しないと判明した場合は、ステップ1で計画を再設定できます。その場合、後続のステップは最初からやり直しになります。アプリのガイドでは、これはp値ハッキングではなく、原則に基づく修正と説明されています。

仮説検定の報告書:質問、仮説、前提条件の確認、検出力、結果、判定

3. すべての選択を確認します

エージェントが列、グループ、グラフの種類、またはレポートのセクションを提案すると:

  • VS Codeなど、MCPフォーム(エリシテーション)に対応するクライアントでは、エージェントが選んだ内容がドロップダウンとチェックボックスにあらかじめ入力されたフォームが表示されます。必要に応じて変更してから、承認するか拒否してください。拒否した場合、何も実行されません。
  • そのほかのクライアントには、提案内容、選択肢、一度限りのトークンを一覧にした CONFIRMATION NEEDED レスポンスが返されます。エージェントには、選択肢を提示し、あなたの同意を得てからトークンを使って再度呼び出すよう指示されています。トークンは発行された選択内容と完全に一致する場合にのみ有効なため、選択内容を変更すると、改めて提案されます。

一度確認した選択について、同じセッション内で再度尋ねられることはありません。

4. グラフとレポート
  • create_visualization:ヒストグラム、箱ひげ図、散布図(最小二乗直線付き)、棒グラフ(カテゴリごとの平均または件数)、折れ線グラフ、円グラフを作成します。これらがアプリのグラフの種類です。アクセシブルな SVG(ライトモードとダークモード)を返し、.svg として保存することもできます。
  • build_report:レポートを依頼した場合にのみ作成され、チェックを付けたセクションだけが含まれます。完了した仮説検定は、アプリの形式に沿った記述になります。質問、仮説、検定方法(手順 2~4)、結果、判定、ベースレートが含まれます。探索レポートには仮説セクションは含まれません。ワークスペースに HTML(デフォルト)または Markdown として保存されます。既存のファイルは、明示的に指定しない限り上書きされません。

グラフ:箱ひげ図、ヒストグラム、近似直線付き散布図、棒グラフ

要約統計量、信頼区間、ヒストグラムを含む探索レポート

画像はサンプルデータセットでの実際の出力を示しています。

ツール

ツール目的
start_analysisリクエストを分類します(仮説検定または探索)
inspect_data_fileデータファイルの列、型、欠損値、カテゴリ、プレビューを確認します
choose_test質問に適した検定を推奨します
state_hypotheses、check_assumptions、check_spread、power_analysis、run_test、base_rate_check、skip_step6つのステップ
describen、平均、SD、中央値、四分位数、範囲、歪度、尖度、分布形状、平均の信頼区間(グループ別も可能)
confidence_interval平均(t)または比率(Wilson)の信頼区間
correlation信頼区間と当てはめた直線を伴うPearsonまたはSpearmanのrを計算します。p値は計算しません(有意性検定はステップ1で実施します)
group_summaryカテゴリごとの合計、平均、中央値、件数、上位N件(分析)
ab_test_planA/Bテストに必要な訪問者数と日数、または所定のサンプルで検出できる最小のリフト
find_relationships数値のアウトカムに最も関連する列(「Xを左右する要因」)
create_visualization、build_reportグラフとレポート
workflow_status現在の分析段階と保存済みの結果
large_file_plan、job_status、cancel_job、manage_cache非常に大きなファイル:全件またはサンプルの読み込み、バックグラウンドジョブ、保持する列

ステップ1で利用できる検定:t検定(1標本、対応あり、WelchまたはStudent)、z検定(σ既知の平均、比率)、一元配置ANOVA(Tukey HSDの事後検定、およびオプションのBonferroni補正付きWelchペア検定)、ANCOVA、MANOVA、カイ二乗検定(適合度、独立性)、Fisherの正確確率検定、正確二項検定、相関、A/Bテスト。

ANOVAの事後検定(Tukey HSD)。 3群以上を対象とする一元配置ANOVAでは、メモリ内のファイルでも非常に大きなファイルでも、すべてのペアについて差、調整済みp値、同時信頼区間を含むTukeyのHSD(群サイズが異なる場合はTukey–Kramer)を実施します。有意なペアには★(「B > A」)を付け、最良の群とそれが他のすべての群を上回るかどうかを示し、文字表示も提示します(同じ文字を共有する群間に差はありません)。レポートでは差のある群を明記します。

A/Bテスト(ab_test)。 インラインの数値、またはバリアント列とアウトカム列を含むファイルから実行できます。

  • metric: "conversion"(コンバージョンあり/なし):2比率のz検定。件数が少ない場合はFisherの正確確率検定によるp値を使用します。metric: "continuous"(収益、時間、注文金額):Welchのt検定を使用します。
  • 各バリアントを対照群と比較します。絶対リフト(パーセントポイント)と相対リフトを、それぞれ信頼区間とともに算出します。効果量にはCohenのhまたはdを使用します。
  • 計画された割り当て(expected_split)に対するサンプル比率の不一致チェックを行います。割り当てに問題がある場合、判定を保留します。
  • A/B/n:オムニバス検定(カイ二乗検定、またはTukey HSDを伴うANOVA)と、Holm補正済みp値(またはBonferroni補正/補正なし)。
  • ベイズ的な見方: 各バリアントが対照群を上回る確率、最良である確率、採用した場合の予想損失を算出します(Beta-Binomial、数値を再現可能にするため数値積分で計算)。
  • 実施したテストでの最小検出可能効果、実務上重要なリフトを判断するためのオプションのmde、Simpsonのパラドックスに関する警告を伴うオプションのsegment_column別内訳、および明確な判定。
  • ガイド付きワークフローでは、ステップ2でサンプル比率チェックが追加され、ステップ4でリフトに基づいて検出力を計算します。

サーバーはanalyze、hypothesis_test、explore_dataの各プロンプトも提供します。VS Codeなどのクライアントでは、これらがスラッシュコマンドとして表示されます。

データファイル

Stats Explorer は表形式(CSV、TSV、Excel、Parquet)向けに構築されており、仮説検定や統計の探索に使用できます。ファイルはアプリ独自のインポートコードで読み込まれます。

  • 引用符で囲まれたフィールド、埋め込みのカンマや改行、BOM、およびタブ、セミコロン、パイプの区切り文字に対応しています。
  • 欠損値(空欄、NA、N/A、null、#N/A、…)はスキップされます。
  • 数値は厳密に解析されます("12 kg" はテキストであり、12 ではありません)が、1,234、$12.50、45% は数値として扱われます。
  • 日付は YYYY-MM-DD 形式のテキストになります。
  • 重複した列名は上書きされず、別の名前に変更されます。
  • Excel のシリアル日付は変換されます。
  • Snappy、gzip、zstd、Brotli、LZ4 で圧縮された Parquet ファイルはすべて読み込まれます。

CSV、TSV、Parquet ファイルのサイズに上限はありません。大容量ファイルを参照してください。

JSON、BSON、NDJSON、NoSQL データベース(MongoDB、CouchDB、Redis の接続文字列など)はドキュメントデータであり、テーブルではありません。これらについては、すべてのツールがその旨を回答し、まず CSV または Parquet にエクスポートするよう提案します(たとえば mongoexport --type=csv)。ネストされたオブジェクトや配列を含むインライン行にも、同じ回答が返されます。

ファイルは許可されたフォルダーからのみ読み込まれ、別の場所を指すシンボリックリンクは拒否されます。

  1. 設定されている場合は STATS_EXPLORER_ROOTS(macOS/Linux では :、Windows では ; で区切ります)。設定されていない場合は、
  2. MCP クライアントが報告するワークスペースのルート。それもない場合は、
  3. サーバーの作業ディレクトリ。

大容量ファイル(ギガバイトからテラバイト)

512 MB までのファイルは、コンパクトな列指向ストレージに読み込まれます(190 MB、1,000,000 行の CSV は、0.5 GB 未満のメモリを使用して約 8 秒で読み込まれます)。それより大きな CSV、TSV、Parquet ファイルにはサイズ制限がありません。代わりに、すべてのツールが必要とする単一パスでストリーミング処理されます。

  • 1 回のパスで、メモリ使用量は一定です。 各ツールは使用する列だけを、並列の分割単位(CPU コアごとに 1 つ)で読み取り、件数、平均、分散、平方和、交差積などの累計値を保持します。メモリ使用量はファイルサイズに応じて増えません。読み取りスレッド 1 つで約 0.5 GB、並列読み取りスレッドが 1 つ増えるごとに約 0.2 GB です。2.5 GB、1,300 万行の CSV は 1 コアで 45 秒、2 コアで 22 秒かかりました。同じデータを 340 MB の Parquet ファイルにした場合は 9 秒でした。
  • 可能な限り正確に計算します。 t 検定、z 検定、ANOVA(ペアごとの比較を含む)、ANCOVA、MANOVA、カイ二乗検定、Fisher の正確確率検定、Pearson 相関、平均、標準偏差、歪度、尖度、信頼区間は、すべての行を対象に正確に計算されます。最大 100,000 個の値を持つグループは実際の値を保持するため、中央値を含め、すべて正確に計算されます。
  • 推定が必要な場合は推定値を明示します。 大きなグループの中央値、四分位数、ヒストグラムの棒、外れ値の件数は、KLL 分位点スケッチから求められます(テスト時の順位誤差は約 0.03%)。Spearman の ρ は 100,000 組のランダムサンプルから求められ、inspect_data_file が返す列内の異なる値の件数は、10,000 を超える場合、HyperLogLog から求められます(誤差は約 2%以内)。推定値を含む結果は、その推定値を large_file.approximate と警告に記載します。
  • 最初に確認します。 ファイル全体の読み込みに 2 分以上かかる場合は、全行を読み込む(正確)か、ファイル全体に分散したブロックから約 1%の行をすばやくサンプリングする(高速、近似)かを尋ねます。フォームを表示できるクライアントでは、選択肢がフォームとして表示されます。それ以外の場合は、アシスタントが確認して large_file_plan を呼び出します。
  • バックグラウンドで実行します。 40 秒以上かかる読み込みはバックグラウンドジョブとして続行されます。ツールは job_id とともに STILL RUNNING を返し、準備ができると job_status が結果を返します(その間、進行状況と残り時間も表示されます)。cancel_job で停止できます。MCP の進行状況通知に対応するクライアントでは、進行状況バーが表示されます。
  • 読み込みは 1 回だけです。 ワークフローの各ステップは 1 回のパスを共有します。ステップ 1 でファイルを読み込み、ステップ 2 から 5 では累計値を再利用します。同意を得た場合、読み込んだ列をディスクに保持できます(数値は 8 バイト、テキスト値は 4 バイト)。その後、これらの列について質問すると、数秒で処理できます。manage_cache で一覧表示や削除ができます。
  • 小さなファイルと同じルールです。 ストリーミングリーダーは、アプリのインポートルールを正確に適用します。CSV と Parquet ファイルを対象に、エッジケースのある 24 個のファイルとランダムに選んだ 300 個のファイル、および 228 回のツール呼び出し(検定、グラフ、6 ステップの完全なワークフロー)で、メモリ内リーダーと照合済みです。引用符で囲まれた値の中にある改行も処理されます。分割位置がそのような値の中にある場合は、ファイルを 1 つにまとめて再読み込みします。

Excel ファイルは常に全体を読み込みます(約 1.9 GB まで)。非常に大きなブックは CSV または Parquet にエクスポートしてください。

設定

変数デフォルト効果
STATS_EXPLORER_GUIDEDonoffにすると、start_analysisと6つのステップを介さずに、個別の検定ツール(t_test、anova、…)を直接公開します
STATS_EXPLORER_CONFIRM_SELECTIONSonoffにすると、列、グラフ、レポートの選択について確認せず、エージェントの選択に従って実行します
STATS_EXPLORER_ROOTSworkspaceデータファイルの読み込みとレポートの書き込みが許可されるフォルダー
STATS_EXPLORER_STREAM_MB512このサイズを超えるCSV/TSV/Parquetファイルはストリーミング処理されます(Parquetの場合は行数×列数で判定)
STATS_EXPLORER_WORKERScores − 1大きなファイルを読み込む並列リーダーの数(デフォルトでは最大16)
STATS_EXPLORER_ASK_SECONDS120全件読み込みにこれより長い時間がかかると予想される場合に確認します
STATS_EXPLORER_BACKGROUND_SECONDS40この時間を超えると、バックグラウンドジョブとして続行します
STATS_EXPLORER_SAMPLE_PERCENT1クイックサンプルのサイズ
STATS_EXPLORER_CACHEask大きなファイルから読み込んだ列を保持するかどうか:ask、on、off
STATS_EXPLORER_CACHE_DIRsystem temp保持した列の保存先
STATS_EXPLORER_MAX_FILE_MB制限なしこのサイズを超えるファイルを拒否します
STATS_EXPLORER_CONFIRM_VIAautoクライアントがフォームをサポートするとしていても、chatにすると会話内で確認を求めます(Claude Codeに推奨)
STATS_EXPLORER_HIDE_LINK01にすると、結果の末尾にある1行のアプリリンクを削除します
STATS_EXPLORER_APP_URLこのリンクを変更します
STATS_EXPLORER_JEVoffJevのチェック:cooperate、enforce、orchestrated。その他の設定についてはdocs/JEV.mdを参照してください

精度

test/reference/generate.pyは、43のケースについてSciPyとstatsmodelsを使って期待値を算出します。各検定と対立仮説、WelchとStudentのt検定、1e-30未満のp値、Spearmanの同順位、ANCOVA(Type II SS)、2つと3つの結果変数を用いたMANOVA、欠損値を含むファイル入力を網羅しています。test/reference/guided.jsonでは、ANCOVAの傾きの等質性を検定するF検定と、ステップ4の検出力計算(2標本、1標本、比率、相関)を追加し、statsmodelsと照合しています。test/reference/abtest.pyでは、Tukey HSD(スチューデント化範囲、調整済みp値、信頼区間、棄却判定をscipy.stats.tukey_hsdおよびstatsmodelsのpairwise_tukeyhsdと照合)と、すべてのA/Bテストの数値を検証します。対象は、z、p、片側p(proportions_ztest)、リフトの信頼区間(confint_proportions_2indep)、Wilsonの信頼区間、Fisherの正確確率検定、カイ二乗検定、Holm/Bonferroni(multipletests)、サンプル比率チェック、Welchのt検定、ベイズ確率と期待損失(SciPyによる数値積分)、サンプルサイズ(NormalIndPower)です。npm testは、実際のMCPクライアントを使ってstdio経由ですべてのテストを実行し(フォームのサポートありとなしの両方)、相対誤差が1e-6以内で一致することを確認します。

既知の近似値は結果にも記載されています。

  • 検出力には正規近似を使います(正確な検出力との差は約0.01以内で、statsmodelsのNormalIndPowerと一致します)。
  • Spearmanのp値にはt近似を使います(SciPyと同様です)。
  • カイ二乗検定では連続性補正を行いません。
  • 非常に大きなファイルでは、中央値、四分位数、ヒストグラムの棒、外れ値の数、Spearmanのρを推定します(「大きなファイル」を参照)。

知っておくべき制限事項

  • 確認フォームは、MCPのエリシテーションをサポートするクライアントでのみ表示されます。それ以外では、サーバーの指示に従ってエージェントが提案をあなたに伝えることを前提としたトークンフローになります。トークンを推測することはできず、異なる選択に再利用することもできません。
  • リクエストに必要なモードは、サーバーの指示に従ってエージェントが判断します。誤ったモードを選んだ場合は、その旨を伝えてください。新しい分析を開始できます。

開発

npm install
npm test                      # reference, unit, guided-workflow and large-file tests
STATS_EXPLORER_STREAM_MB=0 npm test                               # the same, every file through the streaming path
STATS_EXPLORER_STREAM_MB=0 STATS_EXPLORER_EXACT_CAP=3 npm test    # ... using only one-pass summaries
npm run inspect               # open the MCP Inspector
npm run reference             # regenerate reference cases (needs Python + scipy + statsmodels)
npm run reference:ab          # regenerate the Tukey / A/B reference values and test/fixtures/experiment.csv
npm run jev:eval -- --dry-run # measure Jev on labeled cases (drop --dry-run and set TYPESAFE_API_KEY to call Jev)
cd vscode-extension && npm install && npm test && npm run package   # build the .vsix

src/engine/は、npm run sync-engine -- <path-to-app>でStats Explorerアプリからコピーされます。対象は、統計処理、データインポートモジュール、Learnタブのワークフロー説明です。アプリ側で修正してから再同期し、両者にずれが生じないようにしてください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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