gemini-research-tools-mcp

gemini-research-tools-mcp

Integrates Gemini API research capabilities (Deep Research, Quick Search, URL Analysis) into a unified MCP server, enabling comprehensive research, web search, and URL analysis through natural language.

Category
访问服务器

README

Gemini Research Tools MCP

Gemini API の各種リサーチ機能を統合し、MCP Server / Web UI / CLI / ADK Tool など複数のインターフェースから利用できるようにするツールキットです。Gemini API のリサーチ機能をラップして独自のアプリケーションに統合したい場合のサンプル・リファレンス実装として活用できます。

🎯 概要

このプロジェクトは、Google Gemini API の 3 つの強力なリサーチ機能を統合して提供します:

機能 説明 レイテンシ ユースケース
Deep Research Interactions API を使用した包括的な Deep Research 分単位 詳細レポート、市場分析、競合調査
Quick Search Google Search grounding による高速 Web 検索 秒単位 最新ニュース、ファクトチェック、簡単な質問
URL Analysis URL Context tool による特定 URL の分析・比較 秒単位 記事比較、ドキュメント要約、コード分析

提供インターフェース

  • MCP Server - Cline 等の MCP クライアントからツールとして呼び出し
  • Web UI - Streamlit ベースのシンプルなウェブインターフェース
  • ADK Tool - Google ADK エージェントのツールとして利用
  • CLI - コマンドラインからの実行
  • Dify Plugin - Dify プラットフォームのプラグインとして利用

📋 前提条件

🚀 インストール

# リポジトリをクローン
git clone https://github.com/atakamizawa/gemini-research-tools-mcp.git
cd gemini-research-tools-mcp

# 仮想環境を作成(推奨)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# または
.\venv\Scripts\activate  # Windows

# 依存パッケージをインストール
pip install -e ".[all]"

# 環境変数を設定
cp .env.example .env
# .env ファイルを編集して GEMINI_API_KEY を設定

🔧 使用方法

1. MCP Server

MCP クライアント(VS Code GitHub Copilot、Cline 等)からツールとして呼び出せます。

起動方法

方法 コマンド 用途
ローカルクローン grt-mcp 開発・カスタマイズ
GitHub から直接(uvx) uvx --from git+https://github.com/atakamizawa/gemini-research-tools-mcp grt-mcp クローン不要で即利用

クライアント設定

<details> <summary><b>VS Code (GitHub Copilot Chat)</b></summary>

設定ファイル: コマンドパレット → MCP: Open User Configuration または .vscode/mcp.json

{
  "servers": {
    "gemini-research-tools": {
      "command": "grt-mcp",
      "env": { "GEMINI_API_KEY": "your-api-key" }
    }
  }
}

uvx を使う場合は "command": "uvx" + "args": ["--from", "git+https://github.com/atakamizawa/gemini-research-tools-mcp", "grt-mcp"] に変更。

</details>

<details> <summary><b>Cline</b></summary>

設定ファイル:

  • Mac/Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
{
  "mcpServers": {
    "gemini-research-tools": {
      "command": "grt-mcp",
      "env": { "GEMINI_API_KEY": "your-api-key" }
    }
  }
}

uvx を使う場合は "command": "uvx" + "args": ["--from", "git+https://github.com/atakamizawa/gemini-research-tools-mcp", "grt-mcp"] に変更。

</details>

💡 Note: .env ファイルに GEMINI_API_KEY を設定している場合、env セクションでの指定は不要です。

利用可能なツール

🔬 Deep Research ツール(分単位、包括的なレポート)

Interactions API を使用して、複雑なトピックについて自律的にリサーチを行い、引用付きの詳細レポートを生成します。

ツール名 説明 レイテンシ
deep_research トピックについて Deep Research を実行 分単位
get_research_status リサーチの状態を確認 秒単位
get_research_result 完了したリサーチの結果を取得 秒単位
ask_followup_question フォローアップ質問 秒単位
stream_research ストリーミングでリサーチを実行 分単位
🔍 Quick Search ツール(秒単位、軽量検索)

Google Search grounding を使用して、リアルタイムの Web 情報を高速に取得します。

ツール名 説明 レイテンシ
quick_search Google Search を使った高速 Web 検索 秒単位
🔗 URL Analysis ツール(秒単位、特定 URL の分析)

URL Context tool を使用して、特定の URL の内容を取得・分析します。

ツール名 説明 レイテンシ
analyze_urls 特定 URL の内容を分析・比較 秒単位
search_and_analyze Web 検索 + URL 分析のコンボ 秒単位

ツールの使い分けガイド

用途 推奨ツール 理由
最新ニュースの確認 quick_search 高速、リアルタイム情報
簡単な質問への回答 quick_search 秒単位で回答
特定記事の要約・比較 analyze_urls URL を直接分析
検索結果と特定 URL の比較 search_and_analyze 両方の機能を組み合わせ
包括的な市場分析 deep_research 複数ソースを統合
詳細なレポート作成 deep_research 引用付きの長文レポート
競合分析・デューデリジェンス deep_research 深い分析が必要

使用例(Cline)

Quick Search(高速):

User: "今日のAI関連ニュースを教えて"

Cline: quick_search ツールを使用します...
[数秒後]
検索結果: 本日のAI関連ニュースをお伝えします...

URL 分析:

User: "この2つの記事を比較して: https://example.com/article1 https://example.com/article2"

Cline: analyze_urls ツールを使用します...
[数秒後]
分析結果: 2つの記事の主な違いは...

Deep Research(包括的):

User: "量子コンピュータの最新動向について詳しく調べて"

Cline: deep_research ツールを使用します...
[数分後]
リサーチ結果:

# 量子コンピュータの最新動向レポート

## エグゼクティブサマリー
...

## 主要な発見
...

## 引用
[1] https://...
[2] https://...

2. Web UI

# Streamlit UIを起動
streamlit run src/ui/app.py

ブラウザで http://localhost:8501 を開きます。

機能:

  • リサーチクエリの入力
  • フォーマット指定
  • リアルタイムストリーミング表示
  • 状態確認
  • フォローアップ質問

3. CLI

# Deep Research を実行
grt research "量子コンピュータの最新動向"

# ストリーミングで実行
grt research "AI trends in 2025" --stream

# フォーマット指定付き
grt research "EV batteries" -f "比較表を含めてください" -o report.md

# 状態確認
grt status <interaction_id>

# 結果取得
grt result <interaction_id>

# フォローアップ質問
grt followup <interaction_id> "主なリスクは何ですか?"

4. ADK Tool

from google.adk.agents import Agent
from src.adk.tools import deep_research, get_research_status

agent = Agent(
    name="research_assistant",
    model="gemini-3-flash-preview",
    tools=[deep_research, get_research_status],
    instruction="You are a research assistant that can perform deep research."
)

5. Dify Plugin

Dify プラットフォームのプラグインとして利用できます。

インストール

# プラグインをパッケージ化
cd src
dify plugin package ./dify

# 生成された gemini-research.difypkg を Dify にアップロード

利用可能なツール

ツール名 説明 レイテンシ
deep_research Gemini Deep Research Agent による包括的リサーチ 分単位
get_research_status リサーチタスクの状態確認 秒単位
get_research_result 完了したリサーチの結果取得 秒単位
quick_search Google Search grounding による高速検索 秒単位
analyze_urls 特定 URL の内容分析 秒単位
search_and_analyze Web 検索 + URL 分析のコンボ 秒単位

詳細は src/dify/README.md を参照してください。

📁 プロジェクト構造

gemini-research-tools-mcp/
├── src/
│   ├── core/           # コアライブラリ
│   │   ├── client.py   # DeepResearchClient, QuickSearchClient
│   │   └── models.py   # Pydanticモデル
│   ├── mcp/            # MCPサーバー
│   │   └── server.py   # FastMCP実装(8ツール提供)
│   ├── adk/            # ADKツール
│   │   └── tools.py    # ADKカスタムツール
│   ├── cli/            # CLIツール
│   │   └── main.py     # Typer CLI
│   ├── ui/             # Web UI
│   │   └── app.py      # Streamlit
│   └── dify/           # Dify プラグイン
│       ├── main.py     # プラグインエントリーポイント
│       ├── manifest.yaml
│       ├── provider/   # プロバイダー設定
│       └── tools/      # ツール実装
├── tests/              # テスト
├── pyproject.toml
├── requirements.txt
└── README.md

⚙️ 設定

環境変数

変数名 必須 説明
GEMINI_API_KEY Gemini API キー

モデル選択

機能 モデル選択 使用可能なモデル
Deep Research ❌ 不可 エージェント deep-research-pro-preview-12-2025 固定
Quick Search ✅ 可能 gemini-3-flash-preview(デフォルト), gemini-3-pro-preview
URL Analysis ✅ 可能 gemini-3-flash-preview(デフォルト), gemini-3-pro-preview
search_and_analyze ✅ 可能 gemini-3-flash-preview(デフォルト), gemini-3-pro-preview

📝 API リファレンス

DeepResearchClient

Interactions API を使用した Deep Research 用クライアント。

from src.core.client import DeepResearchClient

client = DeepResearchClient()

# リサーチを開始して完了まで待機
result = await client.research("Your query")
print(result.content)

# リサーチを開始(非同期)
interaction_id = await client.start_research("Your query")

# 状態確認
status = await client.get_status(interaction_id)

# 結果取得
result = await client.get_result(interaction_id)

# ストリーミング
async for event in client.stream_research("Your query"):
    print(event.content)

# フォローアップ
answer = await client.ask_followup(interaction_id, "Your question")

QuickSearchClient

Google Search grounding と URL Context を使用した高速検索用クライアント。

from src.core.client import QuickSearchClient

client = QuickSearchClient()

# 高速Web検索(Google Search grounding)
result = await client.quick_search("最新のAIニュース")
print(result.content)
for citation in result.citations:
    print(f"- {citation.title}: {citation.url}")

# URL分析(URL Context tool)
result = await client.analyze_urls(
    urls=["https://example.com/article1", "https://example.com/article2"],
    query="これらの記事の主な違いを比較してください"
)
print(result.content)

# 検索 + URL分析のコンボ
result = await client.search_and_analyze(
    query="最新のEV市場動向と、この記事の内容を比較してください",
    urls=["https://example.com/ev-report-2024"]
)
print(result.content)

⚠️ 注意事項

Deep Research(Interactions API + Deep Research Agent)

  • 実行時間: 数分〜最大 60 分かかる場合があります
  • コスト: 1 タスクあたり約$2〜$5(クエリの複雑さによる)
  • 制限: カスタム Function Calling や Remote MCP は非サポート
  • エージェント: deep-research-pro-preview-12-2025(固定、モデル選択不可)
  • API: client.interactions.create(agent="deep-research-pro-preview-12-2025")

Quick Search(Google Search grounding)

  • 実行時間: 通常数秒で完了
  • コスト: 標準の Gemini API 料金(トークンベース)
  • モデル: gemini-3-flash-preview(デフォルト)または gemini-3-pro-preview
  • API: types.Tool(google_search=types.GoogleSearch())

URL Analysis(URL Context tool)

  • 実行時間: 通常数秒で完了
  • モデル: gemini-3-flash-preview(デフォルト)または gemini-3-pro-preview
  • API: types.Tool(url_context=types.UrlContext())
  • 制限:
    • 最大 20 URL/リクエスト
    • 最大 34MB/URL
    • ペイウォール、YouTube 動画、Google Workspace ファイルは非対応

🔗 関連リンク

Gemini API ドキュメント

ツール

📄 ライセンス

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选