Web検索機能付きローカルAIアシスタントの構築:MCP + Ollamaセットアップ
データのプライバシーを保ちながら、ローカル言語モデルとWeb検索機能を組み合わせる方法
業務用のAIツールを導入する際は、利便性とプライバシーのどちらを優先するか、選ばなければならないことがよくあります。クラウドベースのソリューションは使いやすいですが、データを外部に送信します。ローカルソリューションはすべてを手元に保持しますが、セットアップや機能追加が複雑になることがあります。
本稿では、その両方を実現する実用的なAI環境の構築方法を紹介します。必要に応じてWeb検索ができ、会話と処理は自分のハードウェア上に保つローカル言語モデルを構築します。この方法は、n8n自動化プラットフォームのセルフホスティングでワークフロー全体を管理する方法を紹介したのと同様、当社のセルフホスト型システムに対する考え方に合っています。
使用するツール
まず、各ツールの役割を確認します。
Ollama:ローカルAIエンジン
Ollamaは、自分のコンピューター上で大規模言語モデルを実行するソフトウェアです。OpenAIや他のクラウドプロバイダーにデータを送信することなく、ChatGPTのような機能を利用できる方法と考えてください。モデルのダウンロードやメモリ管理を行い、シンプルなAPI経由でモデルを利用できるようにします。
最大の利点は、ローカルモデルを使う場合、すべてがローカル環境に留まることです。質問、AIの回答、すべての処理がお使いのマシン上で完全に行われます。これは、機密性の高い業務上の議論や自社固有の情報を扱う場合、または単に月額AIサブスクリプション費用を避けたい場合に重要です。
Model Context Protocol(MCP):機能の追加
言語モデルは会話や推論には優れていますが、自力ではWebを閲覧したり、ファイルを読んだり、他のシステムと対話したりすることはできません。Model Context Protocol(MCP)は、AIモデルが外部ツールにアクセスするための標準的な方法を定め、この問題を解決します。
MCPは、AIモデルと他のソフトウェアをつなぐ共通の通訳のようなものです。Web検索には検索用のMCPサーバー、データベースの読み取りには別のMCPサーバーを使えます。一度プロトコルに対応した環境を整えれば、新しい機能を追加しやすくなります。
mcphost:信頼性の高い接続
実際の接続には、標準規格であるMCPに加えて、ローカルAIモデルをMCPサーバーに接続するソフトウェアが必要です。mcphostはこの役割を担い、安定して動作します。
最初は他の選択肢(ollmcpなど)を試しましたが、接続タイムアウトや設定上の問題が繰り返し発生しました。mcphostはすべてを自動検出しようとする代わりに明示的な設定ファイルを使用するため、実際の利用環境でも安定して動作します。2026年10月時点で、mcphostのリポジトリはアーカイブされており、メンテナーは後継としてKitを案内しています。以下のコマンドは引き続きmcphostのものです。
DuckDuckGo MCPサーバー:プライベートWeb検索
Web検索機能には、DuckDuckGo MCPサーバーを使用しています。これにより、ローカルAIがDuckDuckGoを通じてWeb検索を実行できます(サーバーは公式APIではなく、DuckDuckGoのHTML検索エンドポイントにクエリを送信します)。DuckDuckGoのプライバシーポリシーでは、ユーザーの追跡や検索履歴の保存を行わないとしています。プライバシーを重視するローカル環境に適した組み合わせです。
uv:Python環境管理
uvは、隔離環境の作成と依存関係の管理を行う高速なPythonパッケージマネージャーです。システム上の他のPythonプロジェクトに干渉することなく、DuckDuckGo MCPサーバーを独立した環境で実行するために使用します。
ツールが連携する仕組み
ローカルAIに何かを検索させる場合のフローは次のとおりです。
- 「EC関連の規制の最近の動向を検索して」のような質問を入力します
- mcphostがメッセージを受信し、ローカルのOllamaモデルに転送します
- モデルは検索が必要であることを認識し、MCPプロトコルを通じてDuckDuckGo MCPサーバーを呼び出します
- MCPサーバーがDuckDuckGoを検索し、結果を返します
- ローカルモデルが検索結果を処理し、包括的な回答を提供します
- 実際のWeb検索クエリを除き、すべてがお使いのマシン上に留まります
セットアップ:実践的な手順
基盤の準備
まず、ツール呼び出しをサポートするモデルでOllamaを実行する必要があります。能力と速度のバランスが良いqwen3:30b-a3bをお勧めします。
# Install and start Ollama
ollama pull qwen3:30b-a3b
ollama serve
mcphostのインストール
mcphostはGoで書かれているため、まずGoをインストールします。
# On macOS
brew install go
# On Ubuntu/Debian
sudo apt install golang-go
# Install mcphost
go install github.com/mark3labs/mcphost@latest
# Make sure it's in your PATH
export PATH=$PATH:$(go env GOPATH)/bin
DuckDuckGo検索のセットアップ
DuckDuckGo MCPサーバーをクローンしてセットアップします。
git clone https://github.com/nickclyde/duckduckgo-mcp-server
cd duckduckgo-mcp-server
pip install uv # if you don't have it
uv sync
実際に動作する設定
~/.mcphost.jsonに設定ファイルを作成します。
{
"mcpServers": {
"duckduckgo-search": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/your/duckduckgo-mcp-server",
"python",
"src/duckduckgo_mcp_server/server.py"
]
}
}
}
/path/to/your/duckduckgo-mcp-serverをリポジトリをクローンした実際のパスに置き換えてください。
新しいAIアシスタントの使い方
環境が稼働したら、いくつかの方法でAIを利用できます。
インタラクティブチャット
# Start a conversation
mcphost -m ollama:qwen3:30b-a3b
継続的な会話ができ、必要に応じてWeb検索を依頼できるチャットインターフェースが表示されます。
単発の質問
# Get a quick answer
mcphost -m ollama:qwen3:30b-a3b -p "Search for information about EU data privacy laws"
自動化スクリプト
# Save results to a file
mcphost -m ollama:qwen3:30b-a3b -p "Search for competitors in the bowling equipment market" --quiet > research.txt
このセットアップで実際にできること
リサーチとファクトチェック
ビジネスに関連するトピックの最新情報を検索するようAIに依頼できます。DuckDuckGoを使用しているため、追跡なしで十分に役立つWeb検索結果が得られます。
コンテンツリサーチ
「持続可能な包装の最近の動向を検索して」と指示すると、モデルが学習済みの知識を使って分析・要約できる最新情報が得られます。
競合調査
「[競合他社名]に関するニュースを検索し、最近の活動を要約して」と指示すると、分析内容をクラウドAIプロバイダーと共有することなく最新情報が得られます。ただし、検索クエリ自体はDuckDuckGoに送信されます。
技術的な問題解決
「APIのレート制限の問題に対する解決策を検索して」と指示すると、最新のベストプラクティスやコード例を見つけるのに役立ちます。
n8nとの接続:ワークフロー自動化とAIの融合
ここからは、ワークフローとの連携を考えます。n8nをセルフホスティングしてワークフロー自動化を行う方法を紹介したように、このローカルAIセットアップは自動化ワークフローに統合できます。
例えば、n8nワークフローからローカルAIを起動して、次の処理を行えます。
- 自動リサーチ: 業界ニュースを検索して要約を作る日次ワークフロー
- コンテンツ生成: カレンダーの予定やフォーム送信をきっかけにしたコンテンツ作成
- データ分析: AIによる分析を使った、アップロード済み文書の自動処理
- カスタマーサポート: 人間のレビュー前にサポートチケットをローカルAIで処理
セルフホスト型のn8nとローカルAIを組み合わせれば、アシスタントが外部に送信するWeb検索クエリを除き、データを自社インフラ内に保つ強力な自動化基盤を構築できます。データに対する管理の自由度を大きく高めながら、自動化の利便性を得られます。
今後の連携の可能性
これらのシステムを接続するいくつかの方法を検討しています。
- n8nが呼び出せるローカルAIのHTTPエンドポイント
- n8nが文書に対するAI処理を起動するファイルベースの統合
- AIの結果を自動化された業務プロセスへ渡すデータベースワークフロー
- ローカルAIが回答の起草とパーソナライズを支援するメール自動化
WordPress自動化ツールがコンテンツ管理を効率化するのと同様に、ローカルAIとn8nワークフローの組み合わせは、データ主権を維持しながら複雑なビジネスプロセスを自動化できます。
実際のメリット
業務に必要なプライバシー保護
ビジネスの会話、社内ディスカッション、戦略の検討内容はすべてお使いのハードウェアに留まります。外部に出るのはWeb検索クエリのみで、プライバシー重視のDuckDuckGoに送信されます。会話全体は含まれませんが、クエリの文面自体から取り組んでいる内容が伝わる可能性があるため、機密性の高い話題では注意が必要です。
AIサブスクリプション料金なし
初期セットアップ後は、継続的なAIサブスクリプション費用やトークン単位の料金はかかりません。ただし、ハードウェア、電力、利用するホスティングには引き続き費用がかかります。すべてを自分のハードウェアで実行しています。n8nのセルフホスティングが高価なSaaSワークフローツールの費用を節約するのと同様です。
信頼性の高いパフォーマンス
適切な設定を行えば、このセットアップは驚くほど安定しています。「AIサービスが停止している」「月間上限に達した」といった問題はもうありません。
カスタマイズ可能で拡張可能
データベース検索、ファイル読み取り、独自の業務ロジックも追加できます。MCPエコシステムにより新しい機能の追加が簡単になり、将来的にn8nワークフローと連携すれば、自動化の可能性が大きく広がります。
よくある問題と解決策
「Command Not Found」エラー
GoのバイナリディレクトリがPATHに含まれていることを確認してください。
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
source ~/.zshrc
接続タイムアウト
通常、MCPサーバーが正しく起動していないことを意味します。手動でテストしてください。
cd /path/to/duckduckgo-mcp-server
uv run python src/duckduckgo_mcp_server/server.py
モデルがツール呼び出しに応答しない
関数呼び出しをサポートするモデルを使用していることを確認してください。すべてのOllamaモデルにこの機能が組み込まれているわけではありません。
応答が遅い
ハードウェアが限られている場合は、より小さなモデル(qwen3:8bなど)の使用を検討してください。temperatureを下げると回答がより的を絞ったものになりますが、この設定が制御するのは速度ではなくランダム性です:
mcphost -m ollama:qwen3:8b --temperature 0.3 -p "your question"
インフラの考慮事項
n8nのようなセルフホスト型サービスをすでに実行している場合は、同じインフラ上でこれをホスティングすることを検討してみてください。Hetzner Cloud上のn8nで説明したセットアップは、Ollamaも容易に導入できます。言語モデル用により多くのRAMとCPUが必要になるだけです。
一般的な構成には、次のような要素が含まれます。
- 大規模モデルに必要なリソースのためのHetzner CCX42または同等のサーバー(qwen3:30b-a3bだけでダウンロードサイズは19GBあり、GPUがない場合は応答が遅くなると考えてください)
- n8nとあわせて管理しやすくするためのDockerコンテナ化
- セキュアなアクセスのためのTraefikリバースプロキシ(リモートアクセスが必要な場合)
- モデルとワークフローデータ用の共有ストレージ
セットアップ時間に見合うか?
ビジネスタスクにAIを定期的に使用し、プライバシーを重視するなら、間違いなく価値があります。初期セットアップには数時間かかりますが、次のような機能を持つAIアシスタントを利用できます。
- オフラインで動作(Web検索を除く)
- 会話をサードパーティに送信しない(検索クエリのみDuckDuckGoに送信)
- セットアップ後はAIサブスクリプション料金やトークン単位の料金がかからない(ハードウェア、電力、ホスティングには引き続き費用が発生)
- 必要に応じて追加機能で拡張可能
- 既存のセルフホスト型インフラと統合可能
機密情報を扱うチームや規制産業で事業を行うチームにとって、このセットアップは会話をクラウドAIプロバイダーに渡さずに済むため、コンプライアンス対応を簡素化できる可能性があります。ただし、外部に送信される検索クエリを含め、自社の環境を評価する必要は引き続きあります。
ローカル処理と選択的なWebアクセスの組み合わせは、純粋なクラウドまたは純粋なローカルソリューションのいずれでも達成困難な、機能とプライバシーの実用的なバランスを実現します。そしてワークフロー自動化を組み合わせると、高度な業務自動化の基盤を構築でき、すべてを自社で管理できます。
次のステップ
ローカルAIセットアップとワークフロー自動化プラットフォームのより緊密な連携に取り組んでいます。今後の記事では、次の内容を扱う予定です。
- n8n + Ollamaを組み合わせたセットアップのDocker設定
- ビジネス固有のデータソース用のカスタムMCPサーバー
- 一般的な業務プロセスにローカルAIを活用するワークフローテンプレート
- 本番デプロイのためのセキュリティ強化
ビジネス自動化の未来は、既存のサービスを接続するだけではありません。すべてを自社で管理しながら、自社に代わって推論、調査、操作を行える知的なシステムを持つことです。
セットアップ中に問題が発生した場合や、特定のユースケースに合わせてこの設定を拡張したい場合は、当社の標準サポートチャネルを通じてお手伝いいたします。