Skip to main content
Glama
RyotaOzawa0

Langgraph Deep Search MCP Server

by RyotaOzawa0
README.md
# Langgraph Deep Search MCP Server
Google Gemini公式実装をベースにしたLangGraphのAIエージェントを使用して包括的な調査を実行します。

## 🎯 実装について

**Langgraph Implementation**
- 完全にGoogleの[公式実装](https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart/tree/main/backend)をベース
- Gemini 2.5 Flashのネイティブ検索機能使用
- LangGraphによる状態管理とワークフロー
- grounding metadataによる自動引用

## 🌟 機能

- **Deep Search**: 複数回の検索イテレーションによる包括的な調査
- **Quick Search**: 単発検索による迅速な結果取得
- **Gemini Native Search**: Gemini 2.5 Flashのネイティブ検索機能を使用した高品質な検索
- **AI Analysis**: Gemini 2.5 Proを使用した結果の分析と統合
- **MCP Integration**: Model Context Protocolによる外部アプリケーションとの統合
- **自動引用**: grounding metadataによる自動的なソース情報取得

## 🚀 クイックスタート

### 方法1: uvx使用 (推奨)

```bash
# 1. プロジェクトのクローン
git clone https://github.com/RyotaOzawa0/langgraph-deepsearch-mcp.git
cd deep-search-mcp-server

# 2. 環境変数設定
export GEMINI_API_KEY=your_gemini_api_key_here

# 3. MCPサーバー起動
uvx --from . langgraph-deep-search
```

### 方法2: 手動セットアップ

```bash
# 1. プロジェクトのクローン
git clone <repository-url>
cd deep-search-mcp-server

# 2. 依存関係インストール
uv sync

# 3. 環境変数設定
export GEMINI_API_KEY=your_gemini_api_key_here

# 4. MCPサーバー起動
python gemini_server.py
```

## 📋 詳細インストール手順

### 前提条件

- Python 3.10以上
- uv (推奨) または pip

### 手動インストール

```bash
# 1. リポジトリをクローン
git clone <repository-url>
cd deep-search-mcp-server

# 2. uvでプロジェクトセットアップ
uv sync
uv pip install -e .

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

# 4. テスト実行
uv run python gemini_server.py
```

### API キー

- **GEMINI_API_KEY**: Gemini API (必須) - [Google AI Studio](https://aistudio.google.com/app/apikey)から取得

## 🛠 使用方法

### 自然言語入力例

MCPサーバーがClaude DesktopなどのMCPホストに接続されると、以下のような自然言語でリサーチを依頼できます:

#### 包括的な調査 (deep_search)

```
「React状態管理ライブラリを包括的に比較調査して」

「Terraformベストプラクティスを深く調べて」
```

#### 迅速な検索 (quick_search)

```
「Claude Codeの使用感・評判を速攻で調査して」

「Devinの最新アプデをサクッと検索して」
```

#### サーバー状態確認

```
「検索ツールの状態を確認してください」

「MCPサーバーの設定情報を教えてください」
```

### MCP Tools (開発者向け)

#### `deep_search`

包括的な調査を実行します。

**パラメータ:**
- `query` (str): 調査したいトピック
- `max_iterations` (int, default=3): 最大イテレーション回数
- `max_results_per_query` (int, default=5): クエリごとの最大結果数
- `language` (str, default="en"): 検索言語

#### `quick_search`

単発検索による迅速な結果取得。

#### `get_search_tools`

利用可能な検索ツールの状態を確認。

### MCP Resources

#### `search-config`

サーバーの設定情報と利用可能なツールの状態を取得。


### 主要コンポーネント

1. **GoogleSearchManager**: Google検索の統合管理
2. **DeepResearchGraph**: LangGraphによる調査ワークフロー
3. **FastMCP Server**: MCPプロトコルでのツール公開

## 🔧 Claude Desktop連携

### uvxを使用した設定 

`claude_desktop_config.json`に以下を追加:

```json
{
  "mcpServers": {
    "langgraph-deep-search": {
      "command": "uvx",
      "args": ["--from", "/path/to/deep-search-mcp-server", "langgraph-deep-search"],
      "env": {
        "GEMINI_API_KEY": "your_gemini_api_key"
      }
    }
  }
}
```

### uv run使用での設定

```json
{
  "mcpServers": {
    "langgraph-deep-search": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/deep-search-mcp-server", "python", "gemini_server.py"],
      "env": {
        "GEMINI_API_KEY": "your_gemini_api_key"
      }
    }
  }
}
```

### 直接実行での設定

```json
{
  "mcpServers": {
    "langgraph-deep-search": {
      "command": "python",
      "args": ["/path/to/deep-search-mcp-server/gemini_server.py"],
      "env": {
        "GEMINI_API_KEY": "your_gemini_api_key"
      }
    }
  }
}
```

### 開発モード

```bash
# MCP Inspector付きで開発
mcp dev gemini_server.py
```


## 🔍 トラブルシューティング

### よくあるエラー

1. **ModuleNotFoundError: No module named 'mcp'**:
   - 解決策: `uv sync`で依存関係をインストール
   - または: `uv run python gemini_server.py`を使用

2. **Agent not initialized**:
   - 解決策: `GEMINI_API_KEY`環境変数を設定

3. **Process exited with code 1**:
   - 解決策: 絶対パスと`uv run`を使用
   - WSLの場合: `uv run python gemini_server.py`を含むコマンドを使用

4. **Import errors**:
   - 解決策: `uv sync`で依存関係をインストール

### ログ確認

サーバー実行時にコンソールに出力されるログで状態を確認できます。

### デバッグモード

```bash
# 詳細ログ付きで実行
mcp dev gemini_server.py
```

## 📄 ライセンス

MIT License

## 🤝 貢献

1. Forkしてfeatureブランチを作成
2. 変更をcommit
3. Pull Requestを作成

## 📚 参考

- [Model Context Protocol](https://modelcontextprotocol.io/)
- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) - 公式Python SDK
- [LangGraph](https://langchain-ai.github.io/langgraph/)
- [Gemini Fullstack LangGraph Quickstart](https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart)
- [MCP Server Development Guide](https://modelcontextprotocol.io/quickstart/server)

---