ClaudeのMicrosoft 365コネクタとSnowflakeコネクタを組み合わせてPDFとテーブルデータをClaude上で横断分析してみた

ClaudeのMicrosoft 365コネクタとSnowflakeコネクタを組み合わせてPDFとテーブルデータをClaude上で横断分析してみた

2026.04.08

さがらです。

先日、Snowflake Managed MCP Server経由でClaude DesktopからCortex Agentに接続する記事を書きました。

https://dev.classmethod.jp/articles/claude-desktop-to-cortex-agent-via-managed-mcp-server

このCortex AgentはPDFカスタムツール(SP_ASK_CM_FINANCIALS)とCortex Analystツールの2本立てで構成していましたが、PDFの参照にはSnowflakeの内部ステージにファイルをアップロードする必要がありました。

そんな折、ClaudeからMicrosoft 365コネクタがリリースされ、OneDriveのファイルを直接参照できます。弊社でも既に検証記事を執筆しています。

https://dev.classmethod.jp/articles/claude-microsoft-365-connector-onedrive/

これを使えばPDFをSnowflakeの内部ステージに移動させずに済み、Snowflake側のCortex AgentはCortex Analyst(売上データ分析)に専念させられるのでは、と考えました。

今回はその構成を試してみたので、手順と確認結果をまとめます。

技術的アプローチ

以下の2つを組み合わせます。

Claude Desktop
 ├── M365コネクタ(OneDrive)
 │    └── 決算報告書・会社説明資料PDF(読み取り専用)
 └── Snowflake Managed MCP Server
      └── AGENT_CM_FINANCIAL_ANALYST(Cortex Analystのみ)
           └── SV_MONTHLY_SALES(月次売上Semantic View)

Snowflake側は、MCP ServerのツールタイプとしてCortex Analystを直接参照できる CORTEX_ANALYST_MESSAGE を使う方法もありますが、今回はCortex Agentを経由(CORTEX_AGENT_RUN)する構成を選んでいます。理由は、Cortex Analystを直接呼び出すとコスト体系が変わり高くなることが多いため、Cortex Agentを介することでコストを抑えます。

Cortex AgentはPDFツール(SP_ASK_CM_FINANCIALS)を除いてCortex Analystのみを持つ構成に再定義します。PDFへの問い合わせはMicrosoft 365コネクタに任せ、Claude上で2つのソースから得た情報を組み合わせて分析できるかを確認します。

事前準備

Snowflake側:Cortex AgentをCortex Analystのみに再定義

このブログで構築したエージェントである AGENT_CM_FINANCIAL_ANALYST から SP_ASK_CM_FINANCIALS(PDFツール)を除いた状態で CREATE OR REPLACE AGENT で再定義します。PDFへの問い合わせはM365コネクタに任せるため、AgentはCortex Analystに専念させます。

USE ROLE SYSADMIN;
USE DATABASE POC_CM;
USE SCHEMA SAGARA_TEST;

CREATE OR REPLACE AGENT AGENT_CM_FINANCIAL_ANALYST
FROM SPECIFICATION
$$
orchestration:
  budget:
    seconds: 120
    tokens: 32000

instructions:
  system: |
    あなたはクラスメソッドの財務アナリストです。
    ユーザーの質問が月次売上データに関するものであれば AnalystMonthlySales ツールを使用して回答してください。

tools:
  - tool_spec:
      type: "cortex_analyst_text_to_sql"
      name: "AnalystMonthlySales"
      description: "月次売上データを分析するためのCortex Analystツール"

tool_resources:
  AnalystMonthlySales:
    semantic_view: "POC_CM.SAGARA_TEST.SV_MONTHLY_SALES"
    execution_environment:
      type: "warehouse"
      warehouse: "COPUTE_WH"
      query_timeout: 60
$$;

このエージェントを利用できるSnowflake Managed MCP ServerとClaudeからの接続方法については、以下のブログをご覧ください。

https://dev.classmethod.jp/articles/claude-desktop-to-cortex-agent-via-managed-mcp-server/

Claude側:Microsoft 365コネクタのセットアップ

Microsoft 365コネクタのセットアップ手順は以下の記事でまとめているので、こちらを参考にしてください。

https://dev.classmethod.jp/articles/claude-microsoft-365-connector-onedrive/

セットアップ完了後、下図のように表示されればOKです。

2026-04-08_14h19_58

OneDriveへのPDFのアップロード

分析に使用する決算報告書・会社説明資料PDFをOneDriveの任意のフォルダに配置しておきます。(こちらのブログで使用したものと同じです。)

今回は下図のように2つのフォルダを作成して、保存しました。

2026-04-07_17h23_16

2026-04-07_17h23_34

試してみた

Claudeのチャット欄から雑に質問してみる(うまくいかず…)

PDFの内容とSnowflakeの売上データを横断する質問を投げてみます。

OneDriveにある直近の決算報告書に記載されている数字と、Snowflakeの月次売上データを比較して、差異や気になる点があれば教えてください

各ツールへの許可を終えると、下図のように回答を得られました。OneDrive側がうまくいきませんでした…全く関係ないCSVファイルを読み取ろうとしてしまいました。

2026-04-08_14h28_11

Claudeのプロジェクトを使ってOneDrive側のフォルダ情報をテキストで追加してみる

雑にチャットで質問するだけではうまくいかなかったため、Claudeのプロジェクト機能を使って、下図のようにSnowflakeのツールやOneDrive側のフォルダ情報を「手順」に追加してみます。

2026-04-08_14h40_16

この状態で先ほどと同様の質問を行ってみると、OneDrive側の情報も読み取った上で、回答をしてくれました!

OneDriveにある直近の決算報告書に記載されている数字と、Snowflakeの月次売上データを比較して、差異や気になる点があれば教えてください

2026-04-08_14h38_21

続いて、会社説明会資料とSnowflake上のデータの比較が必要な以下の質問を行ってみます。グラフの描画もあったため回答まで30秒ほど時間がかかりましたが、会社説明会資料とSnowflake上のデータの比較を行った内容が返ってきました。

従業員数の推移と売上高の推移を比較して

2026-04-08_14h44_58

最後に

ClaudeのM365コネクタ(OneDrive)とSnowflake Managed MCP Serverを組み合わせることで、PDFをSnowflakeに移動させることなくClaude上で横断分析できることを確認できました。

今回の構成の良い点は、「データの置き場所を変えなくて済む」ことです。OneDriveで管理しているPDF資料はそのままOneDriveに置いておき、Snowflakeには売上データのみを保持する。Claudeがそれぞれのソースに対して適切なコネクタ・ツールを使って情報を取得し、その場で統合して回答してくれます。

複数のデータソースをClaude上で横断分析するという構成の可能性を感じた検証でした。参考になりますと幸いです。

この記事をシェアする

関連記事