Analytical MCP Server について
Analytical MCP Serverは、統計分析、意思決定、論理分析、研究検証のための12個のツールを提供します。構造化分析を必要とするClaudeユーザー向けで、研究ツールはExaとAPIキーを使います。
主な機能
- 01記述統計と相関分析
- 02回帰分析と仮説検定
- 03データ前処理とチャート仕様生成
- 04モデル評価と重み付き意思決定
- 05論証分析と誤謬検出
- 06Exaを使った研究検証
活用シーン
- 01データセットの変数を要約・比較
- 02仮説検定や回帰モデルの適合
- 03重み付き基準による選択肢の順位付け
- 04複数の情報源を使った研究主張の検証
MCP 対応
stdio経由でMCPクライアントに接続し、12個の分析ツールを登録します。研究検証と視点生成のツールはExaを呼び出すため、EXA_API_KEYが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
分析 MCP サーバー
Claude 向けに12個の分析ツールを提供する Model Context Protocol サーバーです。記述統計、回帰(線形/多項式/ロジスティック/多変量)、仮説検定、データの前処理、データ可視化の仕様、複数基準意思決定分析、ML モデルの評価、論理的な議論や誤謬の分析、Exa を活用した調査検証に対応しています。stdio 経由で動作します。分析コアに API キーは不要です(調査機能には EXA_API_KEY が必要です)。
セットアップ
前提条件
- Node.js >= 20.0.0
- EXA_API_KEY 環境変数(
verify_researchとperspective_shifterの実行に必須です。どちらも呼び出しごとに Exa 検索 API を呼び出します)
インストール
オプション 1:直接インストール
npm install
npm run build
オプション 2:Docker
イメージをビルドします。このサーバーは stdio 経由で MCP プロトコルを使用します。デタッチされたデーモンとして実行するのではなく、MCP クライアントが起動し、標準入力/標準出力をパイプで接続します。Claude Desktop による起動方法については、設定の Docker の項を参照してください。
docker build -t analytical-mcp .
# Smoke-test the image interactively (Ctrl-C to exit):
docker run --rm -i -e EXA_API_KEY=your_api_key_here analytical-mcp
設定
直接インストールの設定
.env.exampleを.envにコピーします- EXA_API_KEY を
.envに追加します - Claude Desktop の設定に追加します
{
"mcpServers": {
"analytical": {
"command": "node",
"args": ["/path/to/analytical-mcp/build/index.js"],
"env": {
"EXA_API_KEY": "your-exa-api-key-here"
}
}
}
}
Docker の設定
.env.exampleを.envにコピーします- EXA_API_KEY を
.envに追加します - Claude Desktop の設定に追加します
{
"mcpServers": {
"analytical": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", ".env",
"-v", "$(pwd)/cache:/app/cache",
"analytical-mcp"
]
}
}
}
利用可能なツール
サーバーは起動時に12個のツールを無条件で登録します(登録は EXA_API_KEY の有無に依存しません。以下の調査機能を備えた2つのツールは、キーがない場合、呼び出し時にエラーになります)。正式な一覧は src/tools/index.ts を参照してください。
統計分析
analyze_dataset— 数値データセットまたはレコード配列データセットの記述統計(要約/統計)。advanced_statistical_analysis— 表形式データ(オブジェクトの配列)の記述統計と、変数間のピアソン相関を提供します。単一の数値系列にはanalyze_datasetを使用してください。advanced_regression_analysis— 専用のプロバイダーモジュールを用いた、線形、多項式、ロジスティック、多変量回帰です。実際の OLS/ロジスティック計算に基づいており、モックではありません。hypothesis_testing— 正確な p 値計算を用いた実際の統計的仮説検定です。ウェルチの独立 t 検定、対応のある t 検定、相関、カイ二乗検定、ANOVA に対応しています(src/utils/statistics.tsを参照)。advanced_data_preprocessing— 数値データの正規化、標準化、欠損値処理、IQR 外れ値検出です。data_visualization_generator— 散布図、折れ線グラフ、棒グラフ、ヒストグラム、箱ひげ図、ヒートマップ、円グラフ、バイオリンプロット、相関図の仕様を生成します。
機械学習
ml_model_evaluation— モデルの予測を評価します。分類指標(正解率、適合率、再現率、F1)または回帰指標(MSE、MAE、RMSE、R²)に対応しています。
意思決定分析
decision_analysis— 複数基準による重み付き意思決定ランキングです。optionsとcriteriaに加え、scores行列が必須です(options.length行 ×criteria.length列で、各値は 0~10)。weightsは任意で、省略すると均等な重み付けが適用されます。options/criteria/weightsのみを説明していた古いドキュメントからの仕様変更です。
論理的推論
logical_argument_analyzer— 専用のプロバイダークラスを用いて、議論の構造、誤謬、妥当性、強さを分析します。logical_fallacy_detector— テキスト中の論理的誤謬を検出し、信頼度スコアとともに説明します。perspective_shifter— 問題に対する別の視点(ステークホルダー、専門分野、反対意見、楽観的、悲観的)を生成します。EXA_API_KEYが必要です。各視点の根拠を得るため、視点の領域ごとに Exa 検索を実行します。
リサーチの検証
verify_research— 複数の情報源を使ってリサーチの主張を相互検証します。EXA_API_KEYが必要です。confidence.score(実際に計算された一貫性/信頼度の値、0~1)とconfidence.verified(confidence.scoreがminConsistencyThresholdを満たしたかどうかを示すブール値)を返します。しきい値は合否を判定する基準であり、報告されるスコアに適用される下限値ではありません。
可観測性とメトリクス
Analytical MCP Server には、キャッシュのパフォーマンスとシステムの健全性を監視するための Prometheus スタイルのメトリクス HTTP サーバー(src/utils/metrics_server.ts)が組み込まれています。
メトリクスエンドポイント
有効にすると、サーバーは設定可能なポート 9090 で、HTTP 経由でメトリクスを公開します。
http://localhost:9090/metrics— Prometheus スタイルのメトリクスhttp://localhost:9090/metrics?format=json— JSON 形式のメトリクスhttp://localhost:9090/health— ヘルスチェックエンドポイントhttp://localhost:9090/— メトリクスサーバーのステータスページ
利用可能なメトリクス
キャッシュメトリクス
analytical_mcp_cache_hits_total— 名前空間別のキャッシュヒット数analytical_mcp_cache_misses_total— 名前空間別のキャッシュミス数analytical_mcp_cache_puts_total— 名前空間別のキャッシュ登録数analytical_mcp_cache_evictions_total— 名前空間別のキャッシュ削除数analytical_mcp_cache_size— 名前空間別の現在のキャッシュサイズ
システムメトリクス
analytical_mcp_uptime_seconds— サーバーの稼働時間(秒)analytical_mcp_memory_usage_bytes— メモリ使用量(RSS、ヒープ、外部メモリ)analytical_mcp_cpu_usage_microseconds— CPU 時間の使用量(ユーザー、システム)
設定
環境変数を設定してメトリクスを有効にします。
METRICS_ENABLED=true # Enable metrics server (default: false; unauthenticated, opt-in)
METRICS_PORT=9090 # Metrics server port (default: 9090)
METRICS_HOST=127.0.0.1 # Metrics server host (default: 127.0.0.1, use 0.0.0.0 to bind to all interfaces)
使用例
# Get Prometheus metrics
curl http://localhost:9090/metrics
# Get JSON metrics
curl http://localhost:9090/metrics?format=json
# Health check
curl http://localhost:9090/health
監査ログ
すべてのツール呼び出しについて、LOG_LEVELに関係なく、構造化された監査レコードが1件stderrに出力されます(MCP プロトコルのチャネルである stdout には出力されません)。
[2026-07-05T22:56:12.629Z] AUDIT: {"event":"tool_call","tool":"verify_research","ok":true,"durationMs":1352,"argBytes":120,"argHash":"31b769fe1f66","exaCalls":2}
各レコードには、ツール名、結果、所要時間、引数のバイトサイズと SHA-256 フィンガープリント(引数の実際の値は記録されないため、内容が漏洩することはありません)、および呼び出しが発行した外部向け Exa リクエストの数であるexaCallsが含まれます。これにより、機密情報を記録することなく、運用担当者はフォレンジック調査に役立つ記録(過大な入力や繰り返される入力、予期しない外部への呼び出しの増加など)を確認できます。監査ログは単一のフラグで制御され、既定で有効になっています。また、LOG_LEVELとは独立しています。
ENABLE_AUDIT_LOG=true # per-call audit records to stderr (default: true)
使用例
データセット分析
{
"data": [23, 45, 67, 12, 89, 34, 56, 78],
"analysisType": "stats"
}
意思決定分析
{
"options": ["Option A", "Option B", "Option C"],
"criteria": ["Cost", "Quality", "Speed"],
"scores": [
[7, 6, 8],
[5, 9, 6],
[9, 4, 7]
],
"weights": [0.4, 0.4, 0.2]
}
仮説検定
{
"testType": "t_test_independent",
"data": [[23, 45, 67, 12, 89], [34, 56, 78, 90, 21]],
"alpha": 0.05
}
論理分析
{
"argument": "All birds can fly. Penguins are birds. Therefore, penguins can fly.",
"analysisType": "comprehensive"
}
開発
テスト
# Run the offline unit suite (no API key needed) — same as test:unit
npm test
# Unit tests only (offline, no API key needed)
npm run test:unit
# Integration tests (non-blocking heads-up without EXA_API_KEY; live-Exa cases self-skip)
npm run test:integration
# Integration tests excluding the live-API suite
npm run test:integration:no-api
# Or via the thin wrapper script
./tools/test-runner.sh unit
./tools/test-runner.sh integration
./tools/test-runner.sh integration:no-api
スクリプト
npm run build— TypeScript を JavaScript にビルドしますnpm run watch— 変更を監視して再ビルドしますnpm run typecheck—src/の型をチェックします(テストファイルを除く)npm run typecheck:src—src/と統合テストの型をチェックしますnpm run lint/npm run lint:fix— ESLintnpm run format/npm run format:check— Prettiernpm test/npm run test:unit/npm run test:integration— Jest(テストを参照)npm run smoke— ビルド後、実サーバーを起動し、stdio の JSON-RPC 経由で initialize/tools-list/tools-call を実行しますnpm run cache:stats/cache:clear/cache:preload— ディスク上のリサーチキャッシュを管理しますnpm run inspector— デバッグ用に MCP inspector を起動します
プロジェクト構成
analytical-mcp/
├── src/
│ ├── tools/ # MCP tool implementations (12 registered tools + supporting providers)
│ ├── utils/ # Utility functions, regression/NLP providers, caching, resilience, metrics
│ ├── integration/ # Integration tests (live-Exa cases self-skip without EXA_API_KEY)
│ ├── __tests__/ # Server-level protocol test (InMemoryTransport)
│ └── index.ts # Main server entry point
├── docs/ # Documentation
├── tools/ # Development and testing scripts
├── scripts/ # Build/smoke-test scripts
└── examples/ # Usage examples
アーキテクチャに関する補足
- プロバイダーアーキテクチャ:複雑なツール(回帰、NLP、可視化、議論分析)は、
src/utils/とsrc/tools/の単一責任のプロバイダーモジュール(例:linear_regression_provider.ts、logistic_regression_provider.ts、polynomial_regression_provider.ts、multivariate_regression_provider.ts、regression_metrics_provider.ts)に分割されています。ツールファイルは処理を調整して結果を整形し、プロバイダーがロジックを担います。 - 堅牢性:
src/utils/rate_limit_manager.tsは Exa のレート制限(キーのローテーション、エンドポイントごとのスロットリング)を処理し、src/utils/api_helpers.tsは明示的なshouldRetry述語による再試行を提供します。 - キャッシュ:
src/utils/cache_manager.ts、src/utils/enhanced_cache.ts、src/utils/research_cache.tsは、階層化された名前空間対応のキャッシュを提供します(ENABLE_RESEARCH_CACHE=trueで有効化)。 - 統計:
src/utils/statistics.tsは、正確な p 値の計算に向けて、対数ガンマ関数、不完全ベータ関数/ガンマ関数、t/F/カイ二乗分布の CDF を基本原理から実装しています。統計的な近似やモック結果は使用しません。
ツールのカテゴリ
統計分析
- 記述統計:平均、中央値、標準偏差、四分位数
- 回帰分析:線形、多項式、ロジスティック、多変量
- 仮説検定:Welch の t 検定、対応のある t 検定、相関、カイ二乗検定、ANOVA
意思決定支援
- 明示的な選択肢 × 基準のスコア行列に基づく、多基準の重み付き意思決定ランキング
論理的推論
- 議論の構造、妥当性、強さの分析
- 確信度スコアによる誤謬の検出
- 多様な視点の生成
リサーチ統合
- Exa を介した複数ソースの検証
- 事実の抽出
- 矛盾/整合性の確認
- 確信度スコア
セキュリティとプライバシー
- 分析処理はすべてローカルで行われます
- リサーチ機能では Exa API を使用します(任意。
EXA_API_KEYが必要です) - 任意のローカルディスクキャッシュを除き、データを永続的に保存しません
- API キーは環境変数で管理します
ライセンス
MIT License。詳細は LICENSE file を参照してください。
コントリビューション
コントリビューションのワークフローと規約についてはCONTRIBUTING.mdを、開発に関する詳細なリファレンスについてはdocs/DEVELOPMENT.mdを参照してください。すべての参加者は行動規範に従う必要があります。
要約すると、main からブランチを作成し、npm run typecheck、npm run lint、npm test、npm run smoke がすべて成功することを確認し、新しい動作にはテストを追加して、テンプレートを使用して PR を作成してください。
セキュリティの脆弱性を報告する場合は、SECURITY.mdに従ってください。公開 issue は作成しないでください。
トラブルシューティング
よくある問題
JSON の解析エラー:すべてのログは stdout ではなく stderr に出力する必要があります。MCP プロトコルでは通信に stdout を使用します。console.log ではなく、Logger クラスを使用してください。
ツールが表示されない:Claude Desktop の設定でサーバー構成を確認し、Claude Desktop アプリケーションを再起動してください。
リサーチ機能が呼び出し時に失敗する:環境変数または .env ファイルに EXA_API_KEY を設定してください。verify_research と perspective_shifter は、設定の有無にかかわらず 12 個すべてのツールが登録されますが、どちらもこのキーが必要です。
サーバーが起動しない:Node.js のバージョンが 20 以上であること、および npm install ですべての依存関係がインストールされていることを確認してください。
詳細なトラブルシューティングについては、docs/TROUBLESHOOTING.mdを参照してください。
デバッグモード
MCP inspector を使用してサーバーを起動します:
npm run inspector
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。