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.
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 プラットフォームのプラグインとして利用
📋 前提条件
- Python 3.11+
- Gemini API Key (Google AI Studio で取得)
🚀 インストール
# リポジトリをクローン
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 ドキュメント
- Deep Research Agent - Interactions API を使用した Deep Research
- Interactions API - 長時間実行タスク用 API
- Google Search Grounding - リアルタイム Web 検索
- URL Context - 特定 URL の分析
ツール
- Google AI Studio - API キー取得・テスト
- MCP (Model Context Protocol) - MCP の仕様
📄 ライセンス
MIT License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。