はじめに
LLMは、テキストベースの対話やコンテンツ生成に特化しており、直接的に大量のデータを読み込んで分析するようには設計されてきませんでした。データ分析をする上での不安として以下のようなことが考えられます。
・コンテキストウィンドウの限界: LLMが一度に処理できるテキストの量には制限があり、サイズの大きいデータを一括して扱うことの限界がありそう。
・データの正確性と整合性: データセット全体を正確に記憶したり、行間の複雑な関係性を把握したりすることは不確実性や再現性の不安定さがありそう。
とはいえ、データを丸投げするだけで、鋭い洞察まで自動で出してくれたら……と考えずにはいられません。
データ分析をする際は、データを見たり、理解したりしながら、Excel上で作業を進める場面がまだまだ多いと思います。
今回は、無料で触る機会が増えてきたGeminiCLIとExcel用MCPサーバーの組み合わせで、有名なタイタニックのデータ分析を試してみました。分析した結果を、Excelに新しいシートを追加して書き込んでもらう、というところまで試してみました。(MCPサーバーの真骨頂は、AIエージェントに自動で使ってもらうという場面だとは思いますが……)
デモデータについて
機械学習等で有名なタイタニックのデータを使わせて頂きました。(次のリンク先からCSVファイルをダウンロードし、xlsx形式に変換した上で使わせていただきました。)
https://github.com/datasciencedojo/datasets/blob/master/titanic.csv
環境 / フォルダ・ファイル
PC : Windows11 Home バージョン 24H2
VS Code : Visual Studio Code バージョン 1.104.1
python : バージョン 3.13.3
Excelサーバー:@zhiweixu/excel-mcp-server
- Excel用のMCPサーバーはいくつかあるようですが、今回このMCPを使わせていただきました。
- https://www.npmjs.com/package/@zhiweixu/excel-mcp-server
- Gemini用settings.json:
C:\Users\(ユーザ名).gemini\settings.json には次の記述をしました。
{
"hasSeenIdeIntegrationNudge": true,
"ideMode": true,
"mcpServers": {
"excel": {
"command": "cmd",
"args": ["/c", "npx", "--yes", "@zhiweixu/excel-mcp-server"],
"env": {
"LOG_PATH": "C:/Users/(ユーザ名)/Documents/excel_mcp_logs",
"CACHE_MAX_AGE": "1",
"CACHE_CLEANUP_INTERVAL": "4",
"LOG_RETENTION_DAYS": "7",
"LOG_CLEANUP_INTERVAL": "24"
}
}
},
"selectedAuthType": "oauth-personal",
"theme": "Default"
}
フォルダ:cドライブ直下に"analysis" というフォルダを作成。
"analysis"配下に"data"というフォルダを作成。
"data"フォルダにデモデータの"titanic.xlsx"を作成。
("titanic.xlsx"には、"data"シートを作成し、そこにデータを置きました。)
1. VS Code 起動
VS Code を起動し、"C:\analysis"フォルダを開き、ターミナルを起動
2. GeminiCLIを起動
npm install -g @google/gemini-cli
3. データ分析用のパッケージをインストール
(Excel用MCPサーバーだけでは分析できないので)
データ分析に利用するライブラリは uv で管理したい。
また、 uv で仮想環境を構築したい。このために必要なパッケージをインストールしてください。
データ分析のグラフ描画を日本語で行うため、japanize-matplotlibもインストールしてください。
インストールは、あなた(Gemini)の判断ですべてインストールして問題ありません。。
次のような応答が求められたので"2. Yes, allow always ..." を選択。
4. データ分析(データ概要)
C:\analysis\data\titanic.xlsx の最初の5行を表形式で表示してください。
次のような応答が求められたため、"3. Yes, always allow all tools..."を選択しました。
Excel用MCPサーバーを使い、データを表示してくれました。
このデータの基本統計量を出して。
Pythonスクリプトを作成するようです。応答は、"2. Yes, allow always" を選択しました。
さらに、"2. Yes, allow always" を選択しました。
5-1. データ分析(少し深い分析をGeminiCLIにお願い)
あなたはプロフェッショナルなデータ・サイエンティストです。
以下のポイントに従い、"C:\analysis\data\titanic.xlsx" のデータ分析を実施し、レポートを作成してください。
<ポイント>
1. 新しいフォルダ「temp_report」を作成し、そこにすべての作業用ファイル(データ、コード、画像など)を保存してください。
2. データの詳細な分析を行ってください。具体的には、データの概要、主要な統計量、および注目すべき傾向やパターンを抽出してください。
注目すべき傾向やパターンを抽出する際は、次の視点を入れてください。
・過去の分析や他の情報源等では触れられていない、最も重要でユニークな視点はないか?
・多くの人が信じている常識に反している真実はないか?
3. データを可視化し、分析結果を裏付けるグラフや画像は必ず作成してください。
4. 作成したグラフや画像をフォルダ「temp_report」フォルダに保存してください。
5. 可視化したグラフは、日本語が文字化けしないように細心の注意を払ってください。
5. 6. 最後に、これらを踏まえた「深いデータ分析」をプロフェッショナルなスタイルでレポートしてください。
レポートは、C:\analysis\data\titanic.xlsx に新しい Sheet を設け、
そこに作成したグラフや画像を含めたラポートを作成してください。
レポートは、説明とそれに利用するグラフが離れないように配置してください
(上から下に読みやすくするため)。
何度か応答を求められましたが、すべて、"2. Yes, allow always" を選択しました。
5-2. データ分析結果(Excelの新しいシートに出力された結果)
さいごに
かつて(2023年10月)にPandasAIというツールを使い、今回と同じようにタイタニックのデータを使いデータ分析(デモ)をしたことがあります。
今回、Excel用のMCPサーバーが使われた箇所は、最初のデータの確認部分と、データ分析結果のExcelファイルへの書き込みです。分析部分は、pythonを使って行われました。分析結果の正確性の確認はしていませんが、Excel用MCPサーバーを利用すれば、分析結果までExcelファイルに書き込めるという“小さな衝撃”を実感することができました。