ローカルLLM AIでつくる無料ネット検索エージェント
この記事について
tl;dr
LM StudioのMCPコネクタ[2]にmcp-server-fetch
を追加して、Tool call[3](MCPサーバーの呼び出し)可能なAIモデルに使用許可を出してからプロンプトで調べるように指示する
1. 課題と解決のアプローチ
動機
ChatGPTなどのクラウドAIサービスは便利ですが、プライバシーの懸念やコストの問題があります。
とくに企業内での利用では、機密情報の外部送信リスクが課題でした。
ローカルLLMに検索機能を追加することで、セキュアかつ経済的なAIアシスタントを構築できるのではないかと考えました。
技術選定の基準
- 新規インストールを最低限に抑えること
- Claude CodeやClaudeデスクトップ、GitHub Copilot Chat、Cursorエディターなどに応用しやすいこと
選択した技術とその特徴
- ゼロコンフィグ: 複雑な設定ファイルの作成や環境変数の設定が不要
- プライバシー重視: ローカル環境で完結するため、データが外部に送信されない
- コスト削減: OpenAI APIなどの有料サービスを使わずに済む
- 実用性: 最新情報の取得、ファクトチェック、リサーチ業務に即座に活用可能
- 活用シーン: 「社内情報の機密性を保ちながら技術調査を行う」「オフライン環境での開発時のドキュメント検索」「社内Wikiなどの参照」
2. 前提条件と環境確認
システム要件
- LM Studio バージョン0.2.29以上
- インターネット接続(初回セットアップ時、インターネット検索実行時)
- 対応OS:Windows 10/11、macOS、Linux
必要な前提知識
3. 段階的セットアップ
uv
のインストール
ステップ1: Pythonパッケージマネージャーのuv
をインストールします。WindowsならWinget[5]、macOSならHomebrew[6]が便利です。
Windowsの場合
# Windows (Winget)
winget install astral-sh.uv
# 直接インストール (Linux/Windows/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh
macOSの場合
# macOS (Homebrew)
brew install uv
# 直接インストール (Linux/Windows/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh
mcp.json
へ設定の記述
ステップ2: LM StudioのLM StudioのGUIからmcp.json
を編集します。
[Settings](右上のレンチ🔧マーク)→[Program]→[Integrations]→[Install▼]→[Edit mcp.json]からmcp.json
をLM Studio内で開き、以下のjsonを記述または追記してください。
mcp.jsonを開くまでのクリック手順
LM StudioのGUIでmcp.jsonを開く
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
fetch
の有効化
ステップ3: ツールLM Studioを再起動後、チャット画面でツールアイコンをクリックし、fetch
を有効にします。
初回実行時にmcp-server-fetch
パッケージが自動的にダウンロードされます。
ステップ4: ツール呼び出し可能なモデルの選定
Function Calling[4:1]に対応したモデルを選択してください。推奨モデル:
Qwen2.5-Coder-7B-Instruct
Llama-3.1-8B-Instruct
Hermes-3-Llama-3.1-8B
gpt-oss:20b
ステップ5: プロンプト実行時にツールの有効化
プロンプト送信前に、ツールのトグルスイッチがオンになっていることを確認してください。
ツールのトグルスイッチがオンにしたときの画面の様子
設定ペインのfetchツールがオンになっている
プロンプト入力エリアのfetchツールがオンになっている
4. 動作確認とトラブルシューティング
基本的な使用方法
基本的な使用パターンは以下の通りです:
「2025年のWeb技術トレンドについて最新情報を調べてください」
Zenn記事作成時に画像にキャプションを付ける方法を調べて
https://zenn.dev/zenn/articles/markdown-guide
「○○という情報は正しいですか?最新のソースで確認してください」
AIが自動的にWebページを取得し、内容を解析して回答します。複数のソースを横断した調査も可能です。
動作結果のスクリーンショット
Windowsの場合
トラブルシューティング
MCPサーバーが起動しない場合
-
uv
がインストールされていることを確認 - インターネット接続を確認(
uvx
でパッケージをダウンロードするため) - LM Studioのバージョンが0.2.29以上であることを確認
-
mcp.json
の記述に誤りがないかチェック
5. 応用と拡張
工夫した点
- シンプルな設定: JSON1つとコマンド1つで完結する最小構成
- 汎用性: Webアクセス、API呼び出しへの拡張が容易
- 運用性: uvxによる依存関係の自動解決でメンテナンスフリー
今後の発展性
MCPの導入により、ローカルLLMの実用性が大幅に向上しました。
とくにリサーチ業務では、複数のソースを横断した情報収集が自動化できます。
今後もuvx
やnpx
などによるローカルLLM AIの機能拡張も検討したいと思います。
他のツールへの応用
- Claude Code: コマンドライン開発環境での情報検索
- VS Code拡張: エディター内からの直接検索
- GitHub Copilot Chat: 開発中のコンテキスト検索
- Cursor: AI駆動の統合開発環境での活用
-
MCPサーバー(Model Context Protocol Server): AIモデルがPythonスクリプトやWebページの取得などの外部ツールを呼び出すためのプロトコル。AnthropicによりClaude Desktop用に開発された。公式サイト ↩︎ ↩︎
-
MCPコネクタ: LM StudioのMCPサーバー接続機能。v0.3.0以降で対応。設定ファイル
mcp.json
を通じてサードパーティのツールを連携できる ↩︎ -
Tool call(ツール呼び出し): 自然言語モデルが推論中に外部ツールや関数を実行する機能。Function Calling[4:2]やPlugin機能とも呼ばれる ↩︎
-
Function Calling: AIモデルが事前定義された関数やツールを呼び出す機能。OpenAIが2023年6月に導入し、現在では多くのLLMが対応している標準的な機能 ↩︎ ↩︎ ↩︎
-
Winget: Microsoftが開発したWindows向け公式パッケージマネージャー。Windows 10/11に標準搭載。公式サイト ↩︎
Discussion