2025年10月1日 データサイエンスエージェントにMCP機能を実装してみた! Agent Development Kit Gemini Google Cloud Python Vertex AI 生成AI(Generative AI) 検索する Popular tags 生成AI(Generative AI) Vertex AI Search Looker Studio BigQuery AlloyDB Google Workspace 事例紹介 Cloud SQL Category Google Cloud Author みっちー SHARE 目次 前提条件 MCP (Model Context Protocol) とは? アーキテクチャの進化:MCPツールの統合 実装手順 動作確認 まとめ Content こんにちは!みっちーです! これまでの記事で、ADK(Agent Development Kit)のサンプルプログラムを使ってBigQueryのデータを分析・可視化し、ときにはBigQuery MLでモデル構築まで行う、頼もしい「データサイエンスエージェント」を改修してきました。このエージェントは、手元のデータに関しては非常に優秀な分析官です。 しかし、実際のデータ分析業務では、データベース内の情報だけでなく、外部のWebサイトにある最新のニュース記事、競合の情報、市場のトレンドといったリアルタイムの情報と組み合わせて分析したい場面が頻繁にあります。例えば、「最新の経済指標のウェブページを読み込んで、自社の売上データと関連付けて分析して」といった高度な要求に応えることは、これまでのエージェントにはできませんでした。 そこで今回は、このデータサイエンスエージェントに外部のウェブページを読み込む能力を与える、MCP(Model Context Protocol)のfetchツールを実装します。この機能拡張により、エージェントは閉じたデータベースの世界から、広大なインターネットの情報へとアクセスできるようになり、分析能力が飛躍的に向上します! 前提条件 「Agent Development Kitでデータサイエンスエージェントを開発してみた」の記事を参考に、ローカル環境でデータサイエンスエージェントが動作する状態であること。 MCP (Model Context Protocol) とは? ここで、今回の機能拡張の鍵となるMCP(Model Context Protocol)について解説します。MCPは、AIエージェントが外部のツールやサービスと安全かつ標準化された方法で通信するためのプロトコル(通信規約)です。 エージェントは、それ自体が持つ知識だけでは、リアルタイムの情報を収集したり、ローカルファイルを操作したりすることはできません。MCPは、エージェントと、そうした外部機能を提供するツールサーバーとの間の「共通言語」として機能します。これにより、エージェントは以下のような、自身の能力を超えたタスクを安全に実行できるようになります。 ウェブページの取得 (fetch): 指定されたURLのコンテンツをリアルタイムに読み込み、分析のためのテキスト情報として取得します。 ファイルの操作: ローカルファイルの読み書きや、ユーザーがアップロードしたCSVファイルなどのデータを処理します。 外部コマンドの実行: 安全なサンドボックス環境で、任意のシェルコマンドを実行し、その結果を分析に利用します。 今回はこのMCP上で動作するfetchツールを利用します。これにより、データサイエンスエージェントは、これまでアクセスできなかったインターネット上の最新情報を収集し、それを手元のデータと組み合わせて分析するという、より高度で実践的なタスクを実行できるようになるのです。 アーキテクチャの進化:MCPツールの統合 既存のアーキテクチャでは、司令塔であるroot_agentが、データベース担当のdb_agentやPython分析担当のds_agentといった専門家たちを呼び出してタスクを処理していました。 今回の改修では、このroot_agentが直接利用できる新しい武器として、MCPのfetchツールを追加します。これにより、root_agentはユーザーの質問にURLが含まれていることを検知すると、他のサブエージェントを呼び出す前に、まずMCPツールを使ってウェブページの内容を把握し、その情報を後続の分析タスクのインプットとして渡すことができるようになります。 実装手順 それでは、データサイエンスエージェントにMCPツールを組み込んでいきましょう! 1. MCPツールを呼び出すためのツール定義の追加 まず、司令塔であるroot_agentがMCPのfetch機能を呼び出すための窓口となるツールを定義します。python/agents/data-science/data_science/tools.pyに、以下のcall_mcp_tool関数を追加します。 # python/agents/data-science/data_science/tools.py に追加 from google.adk.tools.mcp_tool import StdioConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset from mcp import StdioServerParameters # ... 既存の関数の下に以下を追加 ... def call_mcp_tool(): """ Tool to call the MCP toolset for fetching web content. """ return MCPToolset( connection_params=StdioConnectionParams( server_params=StdioServerParameters( command='uvx', args=[ "mcp-server-fetch", ], ), timeout=20, ), ) このコードは、ADKに対して「uvx mcp-server-fetchというコマンドで起動するMCPサーバーと通信するためのツールセットを用意してください」と指示しています。これにより、エージェントはfetchのようなMCPが提供する様々な機能を呼び出せるようになります。 2. Root AgentへのMCPツールセットの登録 次に、作成したツールをroot_agentが使えるように登録します。python/agents/data-science/data_science/agent.pyを修正し、root_agentのtoolsリストに先ほど定義したcall_mcp_toolを追加します。 # python/agents/data-science/data_science/agent.py の修正 # ... (既存のimport文) ... from .tools import call_db_agent, call_ds_agent, call_insight_agent, call_mcp_tool # call_mcp_tool をインポート # ... (setup_before_agent_call はそのまま) ... root_agent = Agent( # ... (既存のパラメータ) ... tools=[ call_db_agent, call_ds_agent, call_insight_agent, load_artifacts, call_mcp_tool(), # この行を追加 ], # ... (既存のパラメータ) ... ) 3. Root Agentへの指示(プロンプト)の更新 最後に、root_agentに新しいツールの使い方を教えます。ユーザーの質問にURLが含まれていたら、分析を始める前にまずそのURLの内容を取得するように指示します。python/agents/data-science/data_science/prompts.pyのreturn_instructions_root関数を修正します。 具体的には、# **Workflow:**セクションの先頭に、URLを処理するための新しいステップを追加します。 # python/agents/data-science/data_science/prompts.py の修正 def return_instructions_root() -> str: instruction_prompt_root_v2 = """ (前半は省略) # **Workflow:** # 1. **Analyze User's Query for URLs:** # - If the user's query contains one or more URLs, you MUST use the `fetch` tool from the MCP toolset to retrieve the content of each webpage. # - Use the fetched content as the primary source of information for the subsequent steps. # 2. **Understand Intent** (以降、既存のステップ番号を1つずつずらす) # 3. **Retrieve Data TOOL (`call_db_agent` - if applicable):** ... # 4. **Analyze Data TOOL (`call_ds_agent` - if applicable):** ... # 5. **Generate Insight TOOL (`call_insight_agent` - if applicable):** ... # 6. **BigQuery ML Tool (`call_bqml_agent` - if applicable):** ... # 7. **Respond:** ... (以降省略) """ return instruction_prompt_root_v2 これで実装は完了です!エージェントはウェブを閲覧する能力を手に入れました。 動作確認 それでは、新機能が正しく動作するか確認しましょう。ADKのWeb UIを起動(poetry run adk web)し、データサイエンスエージェントに以下のようなプロンプトを入力します。 この記事(https://sight-r.sts-inc.co.jp/blog/ai-datascience-agentengine-deploy/)の内容を要約して、データサイエンスエージェントをデプロイする際の重要なポイントを3つ挙げてください。 このプロンプトを受け取ったエージェントは、まずプロンプトの指示に従い、MCPのfetchツールを呼び出して指定されたURLのコンテンツを取得します。その後、取得したテキストデータを分析し、要約と重要ポイントの抽出を行います。 エージェントから以下のような応答が返ってくれば、実装は成功です! まとめ 今回は、データサイエンスエージェントにMCPのfetchツールを統合し、外部のウェブサイトからリアルタイムに情報を取得する能力を付与しました。これにより、エージェントは単に手元のデータを分析するだけでなく、インターネット上の膨大な情報を活用して、より文脈に沿った、付加価値の高い分析を行うことが可能になりました。 ぜひ皆さんもMCPを活用して、AIエージェントをより広い範囲で活用できるようにしていきましょう! 関連コンテンツ Agent Development Kitでデータサイエンスエージェントを開発してみた! by みっちーon 2025年6月13日 データサイエンスエージェントでArtifactを使えるようにしてみた!(GCS活用編) by みっちーon 2025年9月9日 データサイエンスエージェントでArtifactを使えるようにしてみた!(ローカル開発編) by みっちーon 2025年9月5日 データサイエンスエージェントを「考察サブエージェント」で強化してみた! by みっちーon 2025年9月18日 頂きましたご意見につきましては、今後のより良い商品開発・サービス改善に活かしていきたいと考えております。 よく分かった 気になる おもしろい イマイチ Author みっちー 株式会社システムサポート 大阪事業本部ソリューションデザイン事業部所属。 Google Cloud 認定資格 13資格取得。2024年4月に新卒入社した新米エンジニアです。 Agent Development Kit Gemini Google Cloud Python Vertex AI 生成AI(Generative AI) 2025年10月1日 データサイエンスエージェントにMCP機能を実装してみた! Category Google Cloud 前の記事を読む 【ADK+BigQuery】ADK の BigQuery ツールセットを使用してデータ分析エージェントを構築してみた Recommendation オススメ記事 2023年9月5日 Google Cloud 【Google Cloud】Looker Studio × Looker Studio Pro × Looker を徹底比較!機能・選び方を解説 2023年8月24日 Google Cloud 【Google Cloud】Migrate for Anthos and GKEでVMを移行してみた(1:概要編) 2022年10月10日 Google Cloud 【Google Cloud】AlloyDB と Cloud SQL を徹底比較してみた!!(第1回:AlloyDB の概要、性能検証編) BigQuery ML ワークショップ開催のお知らせ 生成AI導入支援パッケージ Discovery AI導入支援パッケージ Google Cloud ホワイトペーパー 新着記事 2025年10月1日 Google Cloud データサイエンスエージェントにMCP機能を実装してみた! 2025年9月30日 Google Cloud 【ADK+BigQuery】ADK の BigQuery ツールセットを使用してデータ分析エージェントを構築してみた 2025年9月29日 お知らせ 【お知らせ】Google Cloud Next Tokyo’25:『 Gemini 』が生み出す新しい楽曲と『出会える』カラオケ体験 (動画視聴リンクあり) HOME Google Cloud データサイエンスエージェントにMCP機能を実装してみた!