MCP サーバー: Ollama Deep Researcher
これは、LangChain Ollama Deep Researcherのモデルコンテキストプロトコル(MCP)サーバー版です。モデルコンテキストプロトコルエコシステム内で利用可能なMCPツールとしてディープリサーチ機能を提供し、AIアシスタントがOllamaを介してローカルLLMを用いてトピックに関する詳細なリサーチを実行できるようにします。
コア機能
サーバーは、 Ollamaがホストする任意の LLM を使用して、MCP ツールとリソースを通じて研究機能を提供します。
研究プロセス
トピックを指定すると、次のようになります。
- ウェブ検索クエリを生成する
- TavilyまたはPerplexity API経由でウェブ検索結果を収集する
- 検索結果を要約する
- 要約を振り返り、知識のギャップを調べる
- ギャップを埋めるための新しい検索クエリを生成する
- 複数の調査サイクルを通じて要約を反復的に改善する
- 使用したすべてのソースを含む最終的なマークダウンの概要を提供する
前提条件
- Node.js(MCPサーバーの実行用)
- https://nodejs.org/からダウンロードしてインストールします。
- Node.jsがシステムPATHに追加されていることを確認してください
- Python 3.10以上
- 選択した Ollama モデルを実行できるコンピューティング能力 (CPU/GPU)
- 大規模な言語モデルを実行するには少なくとも8GBのRAMが必要
- 必要なAPIキー:
- Tavily API キー ( https://tavily.comで取得)
- Perplexity API キー ( https://perplexity.aiで取得)
- トレースと監視用の LangSmith API キー ( https://smith.langchain.comで取得)
ターミナル/コマンドプロンプトからNode.jsとnpmが実行できることを確認してください。インストールは次のコマンドで確認できます。
これらのコマンドが失敗した場合は、次の操作が必要になる可能性があります。
- インストール後に端末/コンピュータを再起動してください
- システム PATH に Node.js を追加します。
- Windows: システム環境変数の編集 → 環境変数 → パス → Node.jsインストールディレクトリの追加
- macOS/Linux: 通常はインストーラーによって処理されます
インストール
オプション1: 標準インストール
- お使いのプラットフォームにOllamaをダウンロードしてインストールします
- このリポジトリをクローンし、依存関係をインストールします。
- Python の依存関係をインストールします。
まず、uv をインストールします (パフォーマンスと依存関係の解決を向上させるために推奨されます)。
次に、pyproject.toml を使用してプロジェクトの依存関係をインストールします。
注: これにより、pyproject.toml で指定されたすべての依存関係を含む、編集可能なモードでプロジェクトがインストールされます。pip を使用する場合は、以下のコマンドを実行します。
- TypeScript コードをビルドします。
- Ollamaからローカル LLM を取得します。
オプション2: Dockerのインストール
Docker を使用して MCP サーバーを実行することもできます。これにより、セットアップ プロセスが簡素化されます。
- お使いのプラットフォーム用のDockerをダウンロードしてインストールします
- このリポジトリをクローンします:
- API キーを使用して
.env
ファイルを作成します (.env.example
からコピーできます)。
- ヘルパー スクリプトを実行可能にします。
- Docker コンテナをビルドして実行します。
- ホストマシン上で Ollama が実行されていることを確認します。
ヘルパー スクリプトはいくつかのコマンドを提供します。
macOS/Linux の場合 (run-docker.sh を使用):
./run-docker.sh start
- Dockerコンテナをビルドして起動します./run-docker.sh stop
- Dockerコンテナを停止します./run-docker.sh restart
- Dockerコンテナを再起動します./run-docker.sh logs
- Dockerコンテナからのログを表示します./run-docker.sh status
- Dockerコンテナのステータスを確認する./run-docker.sh help
- ヘルプメッセージを表示する
Windows の場合 (run-docker.bat を使用):
run-docker.bat start
- Dockerコンテナをビルドして起動するrun-docker.bat stop
- Dockerコンテナを停止するrun-docker.bat restart
- Dockerコンテナを再起動しますrun-docker.bat logs
- Docker コンテナからのログを表示しますrun-docker.bat status
- Dockerコンテナのステータスを確認するrun-docker.bat help
- ヘルプメッセージを表示する
注: Dockerコンテナは、ホストマシン上で実行されているOllamaに接続するように設定されています。コンテナ内でもOllamaを実行したい場合は、docker-compose.ymlファイルでOllamaサービスのコメントを解除してください。
クライアント構成
サーバーを MCP クライアント構成に追加します。
Claude デスクトップ アプリの場合:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cline (VS Code 拡張機能) の場合:
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
オプション1: 標準インストール構成
注: パスをシステムの絶対パスに置き換えてください。
- Windows:
C:\\Users\\username\\path\\to\\mcp-server-ollama-deep-researcher
使用します。 - macOS/Linux:
/Users/username/path/to/mcp-server-ollama-deep-researcher
使用します
macOS/Linux の場合は、以下も追加する必要があります。
オプション2: Dockerインストール構成
Docker コンテナを使用している場合は、実行中のコンテナに接続するように MCP クライアントを構成できます。
この設定は、Dockerコンテナが実行中であることを前提としています。環境変数はDockerコンテナに既に設定されているため、MCPクライアント設定で指定する必要はありません。
追跡と監視
サーバーは LangSmith と統合され、研究プロセスの包括的な追跡と監視を実現します。
- 操作追跡:
- すべてのLLMインタラクションがトレースされる
- ウェブ検索操作は監視されている
- 研究ワークフローのステップが追跡される
- パフォーマンス監視:
- 各操作の応答時間
- 成功率/失敗率
- リソースの活用
- デバッグと最適化:
- トラブルシューティングのための詳細なトレース
- パフォーマンスのボトルネックの特定
- クエリ最適化の洞察
設定したプロジェクト名でhttps://smith.langchain.comにあるすべてのトレースにアクセスします。
MCPリソース
研究結果は MCP リソースとして自動的に保存され、次のことが可能になります。
- 永続アクセス
research://{topic}
URI 経由でアクセスできる結果- 完了した研究の自動保存
- メタデータを含むJSON形式のコンテンツ
- リソースパネルの統合
- リサーチはMCPクライアントのリソースパネルに表示されます
- 過去の研究トピックへの簡単なアクセス
- 各結果のタイムスタンプと説明
- コンテキスト管理
- 会話の中での研究の効率的な再利用
- リソース参照によるトークン使用量の削減
- 研究文脈の選択的包含
利用可能なツール
設定
- maxLoops : 研究の反復回数(1~5)
- llmModel : 使用するOllamaモデル(例:"deepseek-r1:1.5b"、"llama3.2")
- searchApi : 使用する検索 API ("perplexity" または "tavily")
研究パラメータを設定します。
研究
Web 検索と LLM 統合を使用して、あらゆるトピックを調査します。
ステータスを取得する
進行中の研究の現在の状況を取得します。
促す
デフォルトの検索 API、モデル、最大反復回数(ループ)の使用
プロンプトの例:「AIファーストのアプリケーションの研究」
デフォルト設定を変更して調査を開始する
構文: configure with <searchapi> and <model> then research <topic>
プロンプトの例:「perplexity と deepseek-r1:8b を設定して、AI ファースト アプリケーションを調査します」
Ollamaリサーチワークフロー
この研究プロセスはIterDRAGに着想を得ています。このアプローチでは、クエリをサブクエリに分解し、それぞれのサブクエリに対応するドキュメントを取得し、サブクエリに回答した後、その回答に基づいて2番目のサブクエリに対応するドキュメントを取得します。
プロセスは次のように機能します。
- ユーザーが指定したトピックに基づいて、ローカル LLM ( Ollama経由) を使用して Web 検索クエリを生成します。
- 検索エンジン( Tavily用に構成)を使用して関連するソースを検索します
- LLM を使用して、ユーザーが提供した研究トピックに関連する Web 検索からの結果を要約します。
- 次に、LLMを使用して要約を振り返り、知識のギャップを特定します。
- 知識ギャップを埋めるために新しい検索クエリを生成する
- このプロセスは繰り返され、要約はウェブ検索からの新しい情報で繰り返し更新されます。
- 研究のウサギの穴に落ちて繰り返すことになる
- 設定可能な反復回数だけ実行します
出力
出力は、研究プロセス中に使用されたすべてのソースへの引用を含む、研究概要を含むマークダウン ファイルです。
調査中に収集されたすべてのソースは保存され、最終出力で参照できます。
システム統合の概要
トラブルシューティング
発生する可能性のある一般的な問題に対する解決策は次のとおりです。
Ollama 接続の問題
- Ollamaが実行中であることを確認する: ターミナルで
ollama list
を実行します - アプリ(システムトレイ/メニューバー)を閉じて、ターミナルモードでollamaを実行してみてください。そして
ollama serve
を実行します。 - Ollamaが
localhost:11434``0.0.0.0:11434
、または127.0.0.1:11434
でアクセス可能か確認します。
APIキーの問題
- 設定ファイルにAPIキーが正しく設定されていることを確認してください
- パス引数がこのリポジトリ内のindex.jsの実際の場所を指していることを確認してください
- APIキーの周囲に余分なスペースや引用符がないことを確認してください
- APIキーに十分なクレジット/権限があるかどうかを確認してください
MCP サーバーの問題
- デバッグには MCP インスペクタを使用します。
Dockerの問題
- Docker コンテナに問題がある場合:
- コンテナが実行中かどうか確認する:
docker ps
- コンテナログの表示:
docker logs ollama-deep-researcher-mcp
.env
ファイルに有効な API キーが含まれていることを確認してください- Ollamaがホストマシン上で実行されており、コンテナからアクセスできることを確認します。
- host.docker.internal が機能しない場合は、OLLAMA_BASE_URL 環境変数でホストマシンの IP アドレスを使用してみてください。
- コンテナ間のネットワークの問題については、同じDockerネットワーク上にあることを確認してください。
- コンテナが実行中かどうか確認する:
- コンテナ内で Ollama を実行している場合:
- docker-compose.yml 内の Ollama サービスのコメントを解除します。
- Ollamaコンテナに十分なリソースが割り当てられていることを確認する
- Ollama コンテナ内のモデルをプルします:
docker exec -it ollama ollama pull deepseek-r1:8b
ビルドの問題
npm run build
「'node' が認識されません」というエラーで失敗した場合:- Node.jsが正しくインストールされていることを確認する
- システム PATH に Node.js を追加します。
- Windows: システム環境変数の編集 → 環境変数 → パス → Node.jsインストールディレクトリの追加
- macOS/Linux: 通常はインストーラーによって処理されます
- 端末/コンピュータを再起動します
- インストールを確認するには、
node --version
を実行してみてください。
Pythonの問題
ウィンドウズ:
- PythonがPATHにあることを確認する
python3
の代わりにpython
を使ってみてください- pipがインストールされているかどうかを確認します:
python -m pip --version
macOS/Linux:
python
の代わりにpython3
使用する- pipがインストールされているかどうかを確認します:
python3 -m pip --version
- pip をインストールする必要がある場合があります:
sudo apt install python3-pip
(Ubuntu/Debian) またはbrew install python3
(macOS)
エラー処理
サーバーは、次の場合に明確なエラー メッセージを提供します。
- APIキーが見つからないか無効です
- 構成の問題
- 検索APIの問題
- LLM処理エラー
必要な機能強化
- 追加の興味深いユースケースのための langgraph のより緊密な再統合と検証。
建築
サーバーのアーキテクチャと実装の詳細については、 .context/index.mdを参照してください。
Glama.ai バッジ
プロンプトと出力のトランスクリプトの例
プロンプト
構成出力
オラマ研究者の成果
クロード最終出力
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
これは、LangChain Ollama Deep Researcherのモデルコンテキストプロトコル(MCP)サーバーへの適応です。モデルコンテキストプロトコルエコシステム内で利用可能なMCPツールとしてディープリサーチ機能を提供し、AIアシスタントがOllamaを介してトピック(ローカル)に関する詳細なリサーチを実行できるようにします。
Related Resources
Related MCP Servers
- -securityFlicense-qualityAn interactive chat interface that combines Ollama's LLM capabilities with PostgreSQL database access through the Model Context Protocol (MCP). Ask questions about your data in natural language and get AI-powered responses backed by real SQL queries.Last updated -28TypeScript
- AsecurityAlicenseAqualityMCP Ollama server integrates Ollama models with MCP clients, allowing users to list models, get detailed information, and interact with them through questions.Last updated -312PythonMIT License
- -securityFlicense-qualityA generic Model Context Protocol framework for building AI-powered applications that provides standardized ways to create MCP servers and clients for integrating LLMs with support for Ollama and Supabase.Last updated -TypeScript
- AsecurityAlicenseAqualityAn MCP server that queries multiple Ollama models and combines their responses, providing diverse AI perspectives on a single question for more comprehensive answers.Last updated -217TypeScriptMIT License