Upgrade to Pro — share decks privately, control downloads, hide ads and more …

仕様書も SQL もログも全部コンテキスト: Cortex Agent へのコンテキスト連携の選択肢

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Kosaku Ono Kosaku Ono
September 11, 2026
95

仕様書も SQL もログも全部コンテキスト: Cortex Agent へのコンテキスト連携の選択肢

SNOWFLAKE WORLD TOUR TOKYO 2026

「仕様書も SQL もログも全部コンテキスト: Cortex Agent へのコンテキスト連携の選択肢」
【日時】2026年9月11日(金)15:05 - 15:20

【内容】
Snowflakeとdbt Coreのパイプラインが作るデータの質問回答エージェントをCortex Agentで構築します。鍵はコンテキストです。定義書はGoogle Docs、dbt CoreのSQLはGitHubからMCPで取得できるように MCP Connector の設定を行います。MCP Gateway の重要性についても考察します。また S3上のmanifest.jsonやAirflowログの連携も検討します。

Avatar for Kosaku Ono

Kosaku Ono

September 11, 2026

More Decks by Kosaku Ono

Transcript

  1. Snowflake World Tour Tokyo 2026 仕様書も SQL もログも全部コンテキスト: Cortex Agent

    へのコンテキスト連携の選択肢 2026/09/11 株式会社Finatextホールディングス 大野巧作 / @Kevinrobot34 © 2026 Finatext Holdings Ltd.
  2. アジェンダ 1. イントロダクション 2. MCP を使った方法 a. MCP Connector b.

    MCP Gateway 3. テーブル化 4. まとめ 5. Appendix © 2026 Finatext Holdings Ltd. 2
  3. イントロダクション 自己紹介 • • • • 名前:大野巧作 ◦ 大体けびんと呼ばれています ◦

    X / GitHub / Zenn / SpeakerDeck などは @Kevinrobot34 ◦ Data Superhero 2026 役職 ◦ VP of Data & AI @ Finatext Holdings Ltd. ◦ Data Engineer / Data Platform Engineer @ Nowcast Inc. 経歴 ◦ 2020年ナウキャスト新卒入社 ▪ POSデータのパイプライン作成・運用、分析 ▪ Snowflake x dbt x Terraform な社内データ基盤構築・運用 ◦ 2025年から VP of Data & AI ▪ グループ全体のデータ・AI活用の促進など Snowflake で最近好きな機能 ◦ Snowflake Optima © 2026 Finatext Holdings Ltd. 4
  4. イントロダクション データだけでは足りない Snowflake × dbt でデータ基盤は作った。BI にも繋いだ。しかし AI エージェントに質問を投げる と、答えられない。そういった課題を持っている方は多いと思います。

    POSデータでの具体例 ◦ 「この売上、税込ですか?」 → GitHub の dbt モデルを見ないと分からない ◦ 「なぜこの店舗だけ 2024年4月からデータが無いのですか?」 → Google Drive にある定義書・Whitepaper にしか書いていない ◦ 「昨日の数字が更新されていないのはなぜ?」 → AWSのバッチの実行ログを見ないと分からない ここの繋 方 Cortex Agent いわゆるコンテキストが重要です。 Snowflake Cowork の模索 • 本セッションではこれら3種類のコンテキストを Snowflake Native に Cortex Agent などに渡す方法を模索します。 • GitHub Google Docs AWS S3/CWL MCP Connector / MCP Gateway / テーブル化 © 2026 Finatext Holdings Ltd. 5
  5. MCP を利用する方法 アーキテクチャ①:MCP Connector ベース MCP Connector を利用することで、 Snowflake から外部の

    MCP サーバーを利用できるようになり ます。今回の場合、安直に考えると以下の3つの MCP Connector を用意し、必要なコンテキストを 取得できるようにすれば良いです。 • • • GitHub : dbt モデルのコードや、その周辺のファイル Google : データ定義書やその他ドキュメント AWS : Cloudwatch Logs にあるような実行ログなど Cortex Agent Snowflake Cowork Supported MCP Connector GitHub MCP in GitHub Custom MCP Connector Google MCP in Snowflake Custom MCP Connector AWS MCP © 2026 Finatext Holdings Ltd. 7
  6. MCP を利用する方法 MCP Connector • • MCP サーバーを利用して、外部システムからコンテキストを取得するのは一番王道なアプローチ 現在の Snowflake

    には MCP connector があり、Cowork や Cortex Agents でMCPが利用可能 ◦ Supported MCP Connector : GitHub などについては Snowsight で少し楽に設定可能 ▪ Custom MCP Connector と同じだが、事前にいくつかの設定値が埋められている ◦ Custom MCP Connector : サポートされていないサービスはカスタムで自分で設定も可能 © 2026 Finatext Holdings Ltd. 8
  7. MCP を利用する方法 MCP Connector - GitHub を例に OAuth としての関係性を図示すると右の通りで、重要な要素は以下の通り •

    • • 認可サーバー(GitHub) ◦ GitHub App ▪ 認可サーバーのクライアント設定に 該当する リソースサーバー(GitHub) ◦ Remote MCP ▪ GitHub が実装しホストしている リモートMCPサーバー クライアント(Snowflake) ◦ API Integration ▪ 認可サーバーに関する情報を Snowflake 側で管理するオブジェクト ◦ External MCP ▪ リモートMCPサーバーに関する情報を Snowflake 側で管理するオブジェクト Authorization Server - GitHub 認可エンドポイント https://github.com/login/oauth/authorize Resource Owner 実際のユーザー トークンエンドポイント https://github.com/login/oauth/access_token GitHub App client id / client secret Client - Snowflake Redirect URL API Integration Cortex Agents External MCP © 2026 Finatext Holdings Ltd. Resource Server - GitHub GitHub Remote MCP https://api.githubcopilot.com/mcp 9
  8. MCP を利用する方法 MCP Connector - GitHub を例に Snowsight の画面で必要事項を記入すると、以下のような DDL

    が実行され、 実際に API Integration と External MCP が作成されます。 CREATE API INTEGRATION github_mcp_integration API_PROVIDER = external_mcp API_ALLOWED_PREFIXES = ('https://api.githubcopilot.com') API_USER_AUTHENTICATION = ( TYPE = OAUTH, OAUTH_CLIENT_ID = '<your_github_client_id>', OAUTH_CLIENT_SECRET = '<your_github_client_secret>', OAUTH_TOKEN_ENDPOINT = 'https://github.com/login/oauth/access_token', OAUTH_AUTHORIZATION_ENDPOINT = 'https://github.com/login/oauth/authorize' ) ENABLED = TRUE; CREATE EXTERNAL MCP SERVER github_mcp WITH DISPLAY_NAME = 'GitHub' URL = 'https://api.githubcopilot.com/mcp' API_INTEGRATION = github_mcp_integration DISABLED = FALSE; Authorization Server - GitHub 認可エンドポイント https://github.com/login/oauth/authorize Resource Owner 実際のユーザー トークンエンドポイント https://github.com/login/oauth/access_token GitHub App client id / client secret Client - Snowflake Redirect URL API Integration Cortex Agents External MCP © 2026 Finatext Holdings Ltd. Resource Server - GitHub GitHub Remote MCP https://api.githubcopilot.com/mcp 10
  9. MCP を利用する方法 MCP Connector ベースの課題 MCP Connector を素直に3つ並べる構成には、いくつか課題があります。 01. ガバナンス面

    公式のリモート MCP サーバーはユーザーの権限 そのまま渡る 形式 多 、エージェントに必要な範囲を超えて、権限 過剰に なり ち 02. 運用面 サービスごとに Connector を設定・管理する必要 ある 連携先 増えるほど手間 増え、スケールしない 03. 粒度 MCP Gateway による解決 MCP サーバーを背後に束ねる単一の接続口、MCP Gateway を用意するの 一つの方法 ・接続先を一元管理でき、ツール単位の制御も可能 ・権限の過剰も、Gateway と背後のサーバー実装を合わ せて設計すれば絞れる MCP サーバー単位でし 許可で ず、 ツール単位での利用制限 で ない © 2026 Finatext Holdings Ltd. 11
  10. MCP を利用する方法 Cortex AI Gateway (PrPr) この領域については、Snowflake から Cortex AI

    Gateway が発表されています。 • • • 2026年5月に買収を発表した Natoma の技術がベース 2026年7月、Black Hat 2026 で発表 2026年8月末時点ではPrPr 前ページの3つの課題は、いずれもカバーされる見込み • • • ① ガバナンス → 認証ときめ細かい認可 ② 運用 → サーバー単位の許可リストで、 組織全体で使える MCP サーバーを一元管理 ③ 粒度 → ツール単位のポリシー サーバー全体を止めずに個別ツールを無効化できる データのガバナンスと同じ場所で AI のガバナンスも 出典: Snowflake Enterprise AI Security Blog 効くのは嬉しく、また UI も良さそうで、正式に使えるようになるのが楽しみ。 © 2026 Finatext Holdings Ltd. 12
  11. MCP を利用する方法 アーキテクチャ①:MCP Connector ベース MCP Gateway を挟むと、以下のようなアーキテクチャになります。 • •

    • Snowflake 側に登録する MCP Connector は Gateway の1つだけ どの MCP サーバーのどのツールを使わせるかは、Gateway 側で制御する 背後の MCP サーバーの実装も工夫することで、権限過剰にも対応できる Nowcast / Finatext では、自社で開発している MCPass を Gateway として運用しています 過剰権限への具体的な対応方法は Appendix を参照。 GitHub MCP in GitHub Cortex Agent Snowflake Cowork Custom MCP Connector MCP Gateway ※ 社内 MCP Gateway を使った場合の図 ※ Cortex AI Gateway の場合には詳細は違うかもしれません © 2026 Finatext Holdings Ltd. Google MCP in Snowflake AWS MCP 13
  12. テーブル化 発想の転換 • • • • • MCP は「エージェントがデータ・コンテキストを取りに行く」という発想 もう一つのやり方は、「あらかじめテーブルとして入れておく」というもの

    例えば dbt / Google Drive / AWS(CWL) のデータも全てテーブル化しておくことも可能ではある 実際にテーブル化することで、権限管理は Snowflake の RBAC を踏襲で るのがメリット 逆にデメリットとしてはパイプラインのメンテなどが発生すること dbt-elementary テーブル Cortex Agent Snowflake Cowork Google Docs Cortex Search Cloudwatch Logs データテーブル © 2026 Finatext Holdings Ltd. 15
  13. テーブル化 発想の転換 • • • • 実際にテーブル化しておく、というだけではあるので、シンプルにパイプラインを組めば良い ただし、内容によってやり方はいくつかある dbt 系の情報

    ◦ Elementary を使うことで、モデルの SQL の文字列や manifest / run results の内容を簡単 にテーブル化しておくことができる。 ◦ manifest.json を stage アップロードしてこれを直接参照し使いやすくしておいたテーブル を自分で作るのも比較的やりやすい。 ◦ これらの情報は他の文脈でも参照できると便利なこともあるのでやっておいて損はないし、 AWS (CloudWatch Logs) / Google Docs ◦ 自前でパイプラインをサクッと書くか、 Openflow などで取り込むなど ◦ テーブル化したり Cortex Search で読み込めるようにしておいて参照する © 2026 Finatext Holdings Ltd. 16
  14. テーブル化 Agents Schema • • • • この発想を標準化する動きがある ウェアハウス内の1スキーマを共有コンテキスト層にする provider

    が publish、AGENTS.ROOT から discovery エージェント前提なので半構造化でもよい、という割り切り https://github.com/dbt-labs/agents_schema/tree/main より © 2026 Finatext Holdings Ltd. 17
  15. テーブル化 MCP vs. テーブル化 • • • dbt 関係のデータ:Elementary もあるためテーブル化が楽で、

    manifest.json も利用しやすい Google Drive :MCP経由での取得が柔軟で相性が良い AWS :シンプルなログならテーブル化もありだが、内容次第 MCP で取りに行 テーブルに入れて 初期コスト 繋ぐだけで済む パイプラインの構築・運用が要る 運用負荷 初期設定したら比較的低い パイプライン次第で重い 権限管理 外部システムの権限モデルに依存 Snowflake の RBAC 横断的な集計 苦手(逐次ツール呼び出し) 得意(SQL で JOIN・集計) 鮮度 常に最新 同期頻度に依存 対象データ量 必要な分だけ取れる 全部入れるとストレージコスト 監査 外部システム側のログ / Gateway ならそこにも溜まる ACCESS_HISTORY で追える © 2026 Finatext Holdings Ltd. そのまま効 18
  16. まとめ コンテキストの渡し方の選択肢 Agent に渡したいコンテキストは、Snowflake の外に散らばっている(仕様書・SQL・ログ) 渡し方は大きく2つ。「MCPで取りに行 」か、「入れて • • (テーブル化)」か。

    MCP で取りに行 場合 ◦ Connector は Snowsight から設定できる ▪ オブジェクトとしての実体は API Integration と External MCP ◦ 素直に並べるとガバナンス・運用・粒度で課題が出る。Gateway で束ねるのが一つの解 ◦ Cortex AI Gateway がプレビュー段階。正式リリースが楽しみ テーブルに入れて 場合 ◦ dbt 系は Elementary などで低コストに実現でき、横断的な問いに強い ◦ Agents Schema のように、この発想を標準化する動きも出てきている どちらか一方ではなく、コンテキストの性質で使い分けるのが大事。 更新頻度、データ量、権限要件、横断集計の必要性で検討するのが良い。 © 2026 Finatext Holdings Ltd. 20
  17. Appendix 参考資料 • • • • • • • •

    • https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp-connectors https://www.snowflake.com/en/developers/guides/sfguide-getting-started-with-mcp-connectors/ https://www.snowflake.com/ja/news/press-releases/snowflake-unlocks-better-ai-economics-dynamic-model-routing/ https://www.snowflake.com/en/blog/enterprise-ai-security-agentic-mcp-governance/ https://github.com/dbt-labs/agents_schema https://note.com/110_110_110/n/n1b53de990def https://zenn.dev/finatext/articles/mcp-gateway-google-sa https://zenn.dev/finatext/articles/mcp-gateway-slack-app https://speakerdeck.com/mtpooh/2026-08-28-postman-api-night-mcpass © 2026 Finatext Holdings Ltd. 22
  18. Appendix Finatext / Nowcast の MCP Gateway: MCPass での過剰権限への対応方法 MCP

    で OAuth を利用し、ユーザーの全権限を与えてしまうと、権限が過剰になってしまう。 サービスごとに対応方法が異なるが、以下のような形で現在は対応している。 • • • GitHub ◦ 個人の PAT を発行し、 PAT の権限を最小にするように依頼 Google Drive ◦ 個人ごとの Service Account を発行 ◦ この SA に必要なフォルダやファイルのみ権限を付与 ◦ 詳細はこちら:https://zenn.dev/finatext/articles/mcp-gateway-google-sa Slack ◦ 個人ごとの Slack App を発行 ◦ この App ごとに必要なチャンネルにのみ招待 ◦ 詳細はこちら:https://zenn.dev/finatext/articles/mcp-gateway-slack-app © 2026 Finatext Holdings Ltd. 23