自然言語で問い合わせして取得したSQL ServerのデータをExcel エージェントモードで分析してみた

自然言語で問い合わせして取得したSQL ServerのデータをExcel エージェントモードで分析してみた

2026.02.26

概要

こんにちは、クラスメソッド製造ビジネステクノロジー部の田中聖也です。
今回もExcelエージェントモードを使って色々とやっていきたいと思います。
https://dev.classmethod.jp/articles/started-excel-agent-from-20260213/
https://dev.classmethod.jp/articles/excel-agent-reference-own-excel/

皆さんの職場にマクロ職人はいますでしょうか?
マクロ職人の方に「○○というデータ取って欲しいんやけど」と依頼したり、依頼されたりしている方もいると思います。
今回は、マクロ職人の方に依頼していた内容を自然言語(日本語)で取得して、Excelエージェントモードで解析するまでをやってみました。

技術的な部分

今回はあくまでLocal上で実装しています。
これをAzureでやってみるのは次回にします。

構成

構成図

コンポーネント

コンポーネント 役割 ポート 技術スタック
agent Strands Agent。ユーザーからのプロンプトを受け取り、MCP ツールを選択・実行 8080 Python, FastAPI, strands-agents, Bedrock
mcp-sqlserver SQL Server 操作用 MCP サーバー 8001 Python, FastMCP, pymssql
mcp-excel Excel ファイル操作用 MCP サーバー 8002 Python, FastMCP, openpyxl
sql-server SQL Server 2022 データベース 1433 mcr.microsoft.com/mssql/server:2022-latest

MCPツール

SQL Server MCP

ツール名 説明
list_tables データベース内の全テーブルを一覧表示
describe_table テーブルのカラム情報を取得
query 読み取り専用 SQL クエリ (SELECT のみ) を実行

Excel MCP

ツール名 説明
create_workbook 新しい Excel ワークブックを作成
list_sheets ワークブック内のシート一覧を取得
read_sheet シートからデータを読み取り
write_to_sheet シートにデータを書き込み
add_sheet 既存ワークブックにシートを追加
format_range セル範囲のフォーマット (太字、フォントサイズ、色)
auto_fit_columns 列幅をコンテンツに合わせて自動調整
list_files 出力ディレクトリ内の Excel ファイル一覧

やってみた

SQL ServerからExcelへの出力

まずAgentがきちんと各MCPとやりとりしているかを確認します。
log_1
log_2
logファイルを確認するときちんとやりとりしているのを確認できました。
つまり自然言語でSQL ServerのデータをExcelにDumpできています。
Dump_Excel

Excel Agent Modeでの解析(失敗編)

DumpされたExcelを参照して解析してみます
0
localにあるファイルを参照します
1
2
3
ん?なんか失敗してますね。。。
モデルをClaudeに変更しても失敗しました。
4
結局、何度実行してもエラーとなりました。
このエラーは後できちんと解析したいと思います。

Excel Agent Modeでの解析(成功編)

しかたないのでDumpされたファイルでエージェントモードを使います
5
6
できてはいますが、棒グラフですね。
推移が見たいので折れ線グラフにしたいと思います。
7
なんか、横軸が変ですね。雑に修正依頼をします。
8
きちんと折れ線グラフで表示されているのを確認できました!!

Excel Agent Modeでの分析(相関確認編)

ダミーで作っているかつ、関係のない値と正確に分析できるかを確認します。
9
10
きちんと「相関なし」と出ていますね。

まとめ

自然言語でデータベースの値を取得して、簡単に分析できることができました。
これで、誰でもデータベースの値を取得できて、分析できる未来に近づいたような気がします!!

この記事をシェアする

FacebookHatena blogX

関連記事