ローカルLLMにWeb検索を足したい。
そう思って試すと、必ずぶつかる壁がある。
「検索はできる。でも、読めていない。」
DuckDuckGo MCPを使えば、SearchもFetchもできる。
だが実際の使い勝手を決めているのは、MCPではなかった。
“検索できること”と“正しく読めること”は別の話
モデルが、それをどう使うかだ。
- EOKの壁──ローカルLLMが“外の世界”を持たないという問題
- ローカルLLMにWeb検索を足す価値は、やはり大きい
- Open WebUIの簡易検索は便利だが、ページを“読む”用途では物足りない
- 結論を先に言うと、DuckDuckGo MCP は便利だった。だが決め手は“モデル側の使い方”だった
- テスト環境
- URL指定の要約は、Gemma 4-E4B がいちばん安定していた
- Qwen3.5-9B は軽快だったが、気楽さと引き換えに危うさもあった
- gpt oss 20B は今回、Tool Use でやや苦しそうだった
- 一覧ページをどう扱うかで、モデルの性格が見えやすい
- ローカルLLMでWeb検索が使えるようになると、用途はかなり広がる
- ただし、業務システムの基盤にするにはまだ気楽すぎる
- まとめ──DuckDuckGo MCP は“ローカルLLMでWeb検索を使う”ための有力な現実解だった
- 補章:DuckDuckGo MCP のセットアップ
EOKの壁──ローカルLLMが“外の世界”を持たないという問題
ローカルLLMを使っていると、かなり早い段階でぶつかる壁がある。
EOK(End of Knowledge)の壁
それは、モデルの知識が止まっていることだ。
普段の会話や文章生成ならそれでも困らない。だが、「今日のニュースを見てほしい」「このURLを要約してほしい」「最新のイベント情報を探したい」となると、一気に不便になる。実際、当サイトでも LM Studio に Web検索を足したいという検索流入は継続的に入っている。
以前は、Web Search MCP を組み合わせて gpt-oss や Gemma3 を比較した記事を書いたが、今回あらためて試してみると、より手軽で実用的な選択肢として DuckDuckGo MCP がかなり面白かった。しかも検証を進めるうちに、単に「検索できる」だけではなく、
Search と Fetch をモデルがどう使い分けるかで、使い勝手が大きく変わる
ことも見えてきた。
今回は、LM Studio に DuckDuckGo MCP をつないで、ローカルLLMで Web検索を使う価値と実際の使用感をまとめてみたい。
ローカルLLMにWeb検索を足す価値は、やはり大きい
ローカルLLMの魅力は、軽さ、自由さ、そして気兼ねのなさだ。
API従量課金をあまり気にせず、思いついた時にすぐ試せる。モデル差の比較も楽しい。文章生成や要約、ちょっとした整理なら、それだけで十分に役に立つ。
ただし、そこに「最新情報」が絡むと事情が変わる。
たとえば次のような用途だ。
- 今日のニュースをざっと拾わせる
- 官公庁や企業の最新発表を要約させる
- URLを渡して内容を読ませる
- 旅行やイベントの候補を探させる
こうした用途では、モデル本体の学習済み知識だけでは足りない。
外の情報を取りに行けるかどうかで、ローカルLLMの使い道は大きく広がる。
だからこそ、「LM StudioでWeb検索を使いたい」という需要は根強いのだと思う。
Open WebUIの簡易検索は便利だが、ページを“読む”用途では物足りない
まず試したのは、Open WebUI の Web検索機能だった。
設定画面から有効化でき、導入の間口はかなり広い。初心者がとりあえず試すには悪くない。
APIキーを必要としないDDGSを選択すれば、擬似RAG環境がフロントだけで成立する。

DDGS = Pythonライブラリ duckduckgo_search の 非公式ラッパー。
OpenWebUI
↓
DDGS(duckduckgo_search)
↓
DuckDuckGo
↓
検索結果取得
ただ、使ってみると限界も見えやすい。
検索結果の一覧を拾って軽く要約するぶんにはそれなりに使える。だが、URLを指定して「このページを要約して」と頼むと、ページ本文をしっかり読んでいないような返答になることがあった。首相官邸の会見ページを渡したときも、内容そのものより「そういう会見があるらしい」という周辺説明に寄りがちで、本文読解としては物足りなかった。
これを見て欲しい。

つまり、Open WebUI の簡易検索は
検索結果ベースの補助には便利だが、ページ本文をしっかり読ませたい用途では弱い
というのが率直な感想だ。
この時点で、「やはり MCP 側で Search と Fetch をきちんと持っている構成のほうがよさそうだ」と感じた。
結論を先に言うと、DuckDuckGo MCP は便利だった。だが決め手は“モデル側の使い方”だった
今回いちばん面白かったのはここだ。
DuckDuckGo MCP 自体は、Search も Fetch もできる。
つまり、検索結果を拾うことも、URL先の本文を取りに行くこともできる。
だが、実際の使用感を決めるのは その機能をモデルがどう使うか だった。
同じ DuckDuckGo MCP をつないでいても、
- Search の後にちゃんと Fetch へ進むモデル
- Search だけでそれらしくまとめてしまうモデル
- Search と Fetch を延々往復して前に進まないモデル
がある。
結論はシンプルだ。
MCPが賢いのではない。
それをどう使うかは、すべてモデル側にある。
ということだ。
この差は思った以上に大きかった。
では、LM Studio + DuckDuckGo MCP の使用感と、モデルごとの挙動の違いを見ていこう。
テスト環境
使用したローカルLLMモデル
- gemma-4-e4b-it
- qwen/qwen3.5-9b
- gpt-oss-20b
環境
ソフトウェア
- Open WebUI v0.7.2
- LM Studio – 0.4.12
- Windows 11
ハードウェア
- CPU : Intel i7 8700
- RAM : 32GB
- GPU : Geforce RTX3060
URL指定の要約は、Gemma 4-E4B がいちばん安定していた
まず結論から言うと、URL指定の要約は Gemma 4 がもっとも安定していた。
たとえば首相官邸のページをそのまま渡して要約させると、Gemma 4 は fetch_content まで進み、ページ本文を見たうえで内容をまとめられた。これは Open WebUI の簡易検索で感じた「読んでいない感」とは、かなり違う。
ここが大きい。

ローカルLLMで Web検索を使いたい人の多くは、単に見出しを並べてほしいわけではない。
URLを渡して「これ何て書いてあるの?」をやりたいはずだ。そこにちゃんと応えてくれたのが Gemma 4 だった。
もちろん万能ではない。
特にイベント一覧やまとめページのように、情報量が多く、しかも確定情報と紹介文が混ざったページでは慎重な出方をすることがある。実際、2026年GWの埼玉県イベント一覧ページでは本文取得自体はしているのに、「断定しすぎず公式サイトを確認してほしい」という寄り方になった。

取得した fetch ログ
gemma-4-e4b-it
fetch_content
mcp/duckduckgo
Arguments: {"url":"https://spring.walkerplus.com/gw/list/ar0311/event/"}
Result: [{"type":"text","text":"埼玉県のGW(ゴールデンウィーク)イベント - ゴールデンウィーク 2026 おすすめ ネモフィラ・潮干狩り・ピクニック・BBQなどおでかけ情報を大特集 おすすめ 2026年のゴールデンウィークはいつから?混雑ピーク予想と回避術をご紹介 おすすめ 今年のGWどこ行く!?関東・関西・東海エリア別スポットガイド 日付をクリックして、GW(ゴールデンウィーク)に開催されるイベント情報をチェック wed 4/29 thu 30 fri 5/1 sat 2 sun 3 mon 4 tue 5 wed 6 thu 7 fri 8 sat 9 sun 10 埼玉県のGW(ゴールデンウィーク)イベント エリアを絞り込む 関東 東京都 神奈川県 千葉県 埼玉県 群馬県 栃木県 茨城県 条件を絞り込む 全選択 GW(ゴールデンウィーク)イベント グルメ・フードフェス 物産展 体験イベント・アクティビティ 無料イベント アニメ・ゲームイベント 花イベント 動物ふれあいイベント 祭り フリーマーケット コンサート・音楽関連イベント 美術展・博物展・展示会 演劇・講演会 フェア 順番を並び替える エリア順 人気順 埼玉県のGW(ゴールデンウィーク)イベント228件ヒットしました 全 228 件中 1 〜 10 件 対話型アート鑑賞会 感じたことを自由に話そう! 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース ノースギャラリー7 開催期間: 2026年5月9日(土) 11:00~、15:00~全2回。各回15分の予定。開始15分前にギャラリー7へ直接来場。 料金: 無料 無料イベント 美術展・博物展・展示会 U more 自由展~ユーモアあふれるアイディアがつくる新しい未来~ 自由でのびやかな作品が一堂に会す 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース ノースギャラリー4~7 開催期間: 2026年5月9日(土)~17日(日) 5/11(月)は閉場 料金: 無料 無料イベント 美術展・博物展・展示会 ノースであそぼう!あーとひろばの日2026 アートイベントを家族みんなで楽しもう! 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース 開催期間: 2026年5月9日(土)~17日(日) 開催日は5月9日・10日・16日・17日 料金: 有料 各イベントにより有料、無料あり 美術展・博物展・展示会 ユーモアじかん for キッズ 手あそび・歌あそびを楽しもう! 埼玉県・さいたま市北区 体験イベント・アクティビティDATA 開催場所: プラザノース ユーモアスクエア映写室 開催期間: 2026年4月26日(日)・5月24日(日) 開催日は4/26(日)、5/24(日)。10:45開場。開催時間約40分。 料金: 無料 体験イベント・アクティビティ 無料イベント フラワーマルシェアフタヌーンティー パステルカラーの花々をイメージした華やかなアフタヌーンティー 埼玉県・さいたま市北区 グルメ・フードフェスDATA 開催場所: 大宮 アートグレイス ウエディングシャトー 開催期間: 2026年3月22日(日)~5月31日(日) 特定日のみ開催 料金: 有料 スタンダードプラン平日5100円、土日祝日5600円、ティーセレクションプラン平日5600円、... グルメ・フードフェス ノース・ティータイム・コンサート 藤井茉里奈ピアノリサイタル 藤井茉里奈ピアノリサイタル 埼玉県・さいたま市北区 ライブ・音楽イベントDATA 開催場所: さいたま市プラザノース ホール 開催期間: 2026年4月24日(金) 公演時間45分(休憩なし) 料金: 有料 全席自由500円 コンサート・音楽関連イベント 企画漫画展 これが漫画!~明治・大正・昭和を彩った漫画家たち~ 明治・大正・昭和を彩った漫画の展覧会 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市立漫画会館 開催期間: 2026年2月21日(土)~5月31日(日) 休館日は月曜日(祝日の場合は開館)、祝日の翌平日 ※2/24(火)は休館 料金: 無料 無料イベント 美術展・博物展・展示会 あーとひろばの日2026~my 自由展 my 自由展 埼玉県・さいたま市北区 展示会DATA 開催場所: プラザノース ノースギャラリー7 開催期間: 2026年5月9日(土)~17日(日) 5/11(月)は閉場 料金: 無料 無料イベント 美術展・博物展・展示会 民俗工芸実演「鴻巣の赤物」 伝統の職人技を間近で! 埼玉県・さいたま市大宮区 講演会・トークショーDATA 開催場所: 埼玉県立歴史と民俗の博物館 開催期間: 2026年4月25日(土) 料金: 無料 無料イベント 演劇・講演会 キッズフリマ@大宮門街 売るのも 買うのも 子どもだけ! 埼玉県・さいたま市大宮区 体験イベント・アクティビティDATA 開催場所: 大宮門街 1F 門外広場 開催期間: 2026年4月25日(土) 第一部11:00~12:00/第二部14:30~15:30 ※出店者受付は各部開始の1時間前より開始。屋根下のため雨天開催(荒天中止)。当日7:30にHPにて開催の状況を発表 料金: 有料 入場無料 ※出店者のみ出店料として1ブース300円が必要
..
ただ、これは見方を変えれば欠点ではない。
一覧ページはノイズも多く、期間限定情報やPR混じりの記述も入りやすい。そうした場面で無理に断定せず、安全側に寄るのは、むしろ筋の良い挙動だと思う。
イベント情報という、いまだ確定していない未来の事象を、断言することを避けるという、いかにもGeminiの眷属らしい慎重な振る舞いと解釈することもできる。
少なくとも、
URL要約を安定してやらせたいなら、Gemma 4 はかなり有力
という印象は強い。
Qwen3.5-9B は軽快だったが、気楽さと引き換えに危うさもあった
一方で、Qwen3.5-9B はかなり軽快だった。
体感的なレスポンスの速さは気持ちいいし、「まあ雰囲気で候補を出してくれればいい」という使い方なら悪くない。
ただし、問題も分かりやすい。
このモデルは Search の結果だけで話をまとめに行きやすく、Fetch まで踏み込まず、それっぽい整理を始めることがあった。すると、出力は一見まともでも、1次情報で裏を取っていないぶん、固有名詞や場所、開催内容が怪しくなりやすい。
実際、埼玉GWイベントの例でも、もっともらしく候補を並べてくれる一方で、「オーパークおごせ(八潮市)」のような明らかにおかしい記述が出た。追撃すれば修正できることもあるが、最初の一発を信用しすぎると危ない。

だから Qwen3.5-9B については、
真実性をあまり気にせず、気楽に叩いて候補出しに使うなら軽快で楽しい
という評価になる。
逆に言えば、URL要約や事実確認を任せる役には、まだ少し怖さが残る。
gpt oss 20B は今回、Tool Use でやや苦しそうだった
gpt-oss も試したが、今回の範囲ではあまり分が良くなかった。
Search と Fetch を延々繰り返して前に進まないような場面があり、Contextを使い果たすこともしばしば。
もちろん、プロンプトや温度設定、モデルサイズや周辺条件で印象は変わりうる。だが少なくとも今回の検証では、
DuckDuckGo MCPとの相性では、gpt-oss は最新モデルに譲る
と感じた。
以前は gpt-oss と Gemma 系を比較していたが、Web検索を絡めると差の出方が少し変わる。文章そのものの質だけでなく、道具の扱い方まで含めて見ないと実用性は測れない、ということだろう。
gpt-oss の名誉のために言っておくが、以前テストしたWeb Search MCP との相性は素晴らしいものがあったので、あくまで”相性の範囲”と理解している。
一覧ページをどう扱うかで、モデルの性格が見えやすい
今回とくに面白かったのは、イベント一覧ページの扱いだ。
Walkerplus の 2026年GWイベント一覧ページでは、DuckDuckGo MCP 側は本文をきちんと取得していた。Fetch のログを見れば、ページ内のイベント情報やランキング、説明テキストまでかなり読めていることが分かる。
取得した fetch ログ
gemma-4-e4b-it
fetch_content
mcp/duckduckgo
Arguments: {"url":"https://spring.walkerplus.com/gw/list/ar0311/event/"}
Result: [{"type":"text","text":"埼玉県のGW(ゴールデンウィーク)イベント - ゴールデンウィーク 2026 おすすめ ネモフィラ・潮干狩り・ピクニック・BBQなどおでかけ情報を大特集 おすすめ 2026年のゴールデンウィークはいつから?混雑ピーク予想と回避術をご紹介 おすすめ 今年のGWどこ行く!?関東・関西・東海エリア別スポットガイド 日付をクリックして、GW(ゴールデンウィーク)に開催されるイベント情報をチェック wed 4/29 thu 30 fri 5/1 sat 2 sun 3 mon 4 tue 5 wed 6 thu 7 fri 8 sat 9 sun 10 埼玉県のGW(ゴールデンウィーク)イベント エリアを絞り込む 関東 東京都 神奈川県 千葉県 埼玉県 群馬県 栃木県 茨城県 条件を絞り込む 全選択 GW(ゴールデンウィーク)イベント グルメ・フードフェス 物産展 体験イベント・アクティビティ 無料イベント アニメ・ゲームイベント 花イベント 動物ふれあいイベント 祭り フリーマーケット コンサート・音楽関連イベント 美術展・博物展・展示会 演劇・講演会 フェア 順番を並び替える エリア順 人気順 埼玉県のGW(ゴールデンウィーク)イベント228件ヒットしました 全 228 件中 1 〜 10 件 対話型アート鑑賞会 感じたことを自由に話そう! 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース ノースギャラリー7 開催期間: 2026年5月9日(土) 11:00~、15:00~全2回。各回15分の予定。開始15分前にギャラリー7へ直接来場。 料金: 無料 無料イベント 美術展・博物展・展示会 U more 自由展~ユーモアあふれるアイディアがつくる新しい未来~ 自由でのびやかな作品が一堂に会す 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース ノースギャラリー4~7 開催期間: 2026年5月9日(土)~17日(日) 5/11(月)は閉場 料金: 無料 無料イベント 美術展・博物展・展示会 ノースであそぼう!あーとひろばの日2026 アートイベントを家族みんなで楽しもう! 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市プラザノース 開催期間: 2026年5月9日(土)~17日(日) 開催日は5月9日・10日・16日・17日 料金: 有料 各イベントにより有料、無料あり 美術展・博物展・展示会 ユーモアじかん for キッズ 手あそび・歌あそびを楽しもう! 埼玉県・さいたま市北区 体験イベント・アクティビティDATA 開催場所: プラザノース ユーモアスクエア映写室 開催期間: 2026年4月26日(日)・5月24日(日) 開催日は4/26(日)、5/24(日)。10:45開場。開催時間約40分。 料金: 無料 体験イベント・アクティビティ 無料イベント フラワーマルシェアフタヌーンティー パステルカラーの花々をイメージした華やかなアフタヌーンティー 埼玉県・さいたま市北区 グルメ・フードフェスDATA 開催場所: 大宮 アートグレイス ウエディングシャトー 開催期間: 2026年3月22日(日)~5月31日(日) 特定日のみ開催 料金: 有料 スタンダードプラン平日5100円、土日祝日5600円、ティーセレクションプラン平日5600円、... グルメ・フードフェス ノース・ティータイム・コンサート 藤井茉里奈ピアノリサイタル 藤井茉里奈ピアノリサイタル 埼玉県・さいたま市北区 ライブ・音楽イベントDATA 開催場所: さいたま市プラザノース ホール 開催期間: 2026年4月24日(金) 公演時間45分(休憩なし) 料金: 有料 全席自由500円 コンサート・音楽関連イベント 企画漫画展 これが漫画!~明治・大正・昭和を彩った漫画家たち~ 明治・大正・昭和を彩った漫画の展覧会 埼玉県・さいたま市北区 展示会DATA 開催場所: さいたま市立漫画会館 開催期間: 2026年2月21日(土)~5月31日(日) 休館日は月曜日(祝日の場合は開館)、祝日の翌平日 ※2/24(火)は休館 料金: 無料 無料イベント 美術展・博物展・展示会 あーとひろばの日2026~my 自由展 my 自由展 埼玉県・さいたま市北区 展示会DATA 開催場所: プラザノース ノースギャラリー7 開催期間: 2026年5月9日(土)~17日(日) 5/11(月)は閉場 料金: 無料 無料イベント 美術展・博物展・展示会 民俗工芸実演「鴻巣の赤物」 伝統の職人技を間近で! 埼玉県・さいたま市大宮区 講演会・トークショーDATA 開催場所: 埼玉県立歴史と民俗の博物館 開催期間: 2026年4月25日(土) 料金: 無料 無料イベント 演劇・講演会 キッズフリマ@大宮門街 売るのも 買うのも 子どもだけ! 埼玉県・さいたま市大宮区 体験イベント・アクティビティDATA 開催場所: 大宮門街 1F 門外広場 開催期間: 2026年4月25日(土) 第一部11:00~12:00/第二部14:30~15:30 ※出店者受付は各部開始の1時間前より開始。屋根下のため雨天開催(荒天中止)。当日7:30にHPにて開催の状況を発表 料金: 有料 入場無料 ※出店者のみ出店料として1ブース300円が必要
..
それでも、モデルによって振る舞いはかなり違った。
Gemma 4 は、Fetchした情報を読んだうえで慎重にまとめようとする。
Qwen3.5 は、そこまで慎重にならず、Search 結果だけでも勢いよく候補を出してくる。
gpt-oss は、道具の使い回しの段で詰まりやすい。
この差は、単なるモデル性能の優劣というより、
Web検索という外部ツールを前にしたときの“性格の違い”
として見ると分かりやすい。
だから、今後ローカルLLMに Web検索を足すときは、モデル本体のベンチマークだけでなく、
- Search に行くか
- Fetch まで進むか
- 読んだ内容をそのまま慎重に使うか
- 勢いでまとめに行くか
まで見たほうがいい。
ローカルLLMでWeb検索が使えるようになると、用途はかなり広がる
では、DuckDuckGo MCP を足す価値は何か。
いちばん大きいのは、ローカルLLMが「閉じた知識の箱」から一歩外に出られることだ。
それだけで、できることがかなり増える。
たとえば次のような用途には相性がいい。
公的機関や企業の発表ページの要約。
ニュース一覧の軽い整理。
旅行やイベント候補のたたき台作り。
製品ページやドキュメントURLを渡してのざっくり把握。
ChatGPT や Gemini のようなクラウドAIでは当たり前に見えることが、ローカルLLMでもかなり近い感覚でできるようになる。これはやはり面白いし、実用上の価値も大きい。
そして、何より実質無料でWeb検索が使えることの価値。
特に「外の情報を見に行ける」というだけで、ローカルLLMの出番は一段増える。
ただし、業務システムの基盤にするにはまだ気楽すぎる
もちろん、いいことばかりではない。
DuckDuckGo MCP は便利だが、これをそのまま企業システムの中核に据える発想はおすすめしない。理由は単純で、検索品質も本文取得も外部サービスやページ構造に依存するし、モデルの Tool Use もかなり個体差があるからだ。
今回の検証でも分かった通り、
- Search だけで済ませるモデルがある
- Fetch を使っても慎重すぎて結論を出しにくいことがある
- ループ気味になるモデルもある
- 一覧ページでは整理の質に大きく差が出る
こうした不確実性がある以上、これは今のところ
個人利用や実験、調査補助としては楽しいし有用だが、厳密な業務判断を丸投げする相手ではない
と見ておくのが無難だろう。
ちなみに、冒頭紹介した Open WebUI については、今回使用したDDGS以外に、商用ベースの検索エンジンがいくつも用意されており、お金を惜しまなければ、Brave や望めば Google などのより快適なWeb検索体験を得ることができる。MCPでも同様だ。
ただ、今回検証してきたように、
検索エンジンの優劣以前に、ローカルLLMのモデルがそれをどこまで使いこなせるか?
という根源的な課題がそこに横たわっていることを忘れてはならないだろう。
まとめ──DuckDuckGo MCP は“ローカルLLMでWeb検索を使う”ための有力な現実解だった
今回あらためて感じたのは、ローカルLLMに Web検索を足す価値はやはり大きい、ということだ。
そしてその方法として、DuckDuckGo MCP はかなり有力だった。
今回の印象を一言でまとめるとこうなる。
Gemma 4 → 読む。だが慎重すぎる
Qwen3.5 → 速い。だが読まない
gpt-oss → 迷う。前に進まない
要するに、
DuckDuckGo MCP は Search も Fetch もできる。だが、それをどう使うかで使用感が決まるのはモデル側だ。
この一点が、今回のいちばん大きな収穫だった。
ローカルLLMで Web検索を使いたい。
でも Open WebUI の簡易検索だけでは少し物足りない。
そんな人にとって、DuckDuckGo MCP はかなり面白い選択肢になると思う。
導入は多少のセットアップが必要だが、別に大げさなサーバー運用を始める話ではない。
当サイトの読者層なら、十分手が届く範囲だ。
そして何より、ローカルLLMが外の情報を読みに行けるようになると、やはり世界が少し広がる。
その感覚は、一度試してみる価値がある。
ローカルLLMにWeb検索を足すこと自体は、もう難しくない。
問題はそこではない。
「検索できること」と「読めること」は、まったく別だ。
そして現時点では、
その差を埋めているのはツールではなく、モデルの癖だ。
DuckDuckGo MCPは優秀な道具だ。
だが、それを使いこなせるかどうかは、まだ人間側の仕事でもある。
補章:DuckDuckGo MCP のセットアップ
MCPと聞くと、つい身構えてしまう。
重い、面倒、常駐が必要、設定がややこしい。そういう印象を持つ人は多いと思う。
今回の検証で使用した DuckDuckGo MCP は、見た目ほど大げさな構成ではない。
Python製のツールを uvx で単発起動するだけで、ローカルLLMに「検索」と「ページ取得」を与えられる。
この DuckDuckGo MCP、サーバーを常時起動しておく必要はない。
そこが、気軽に使える印象をさらに高めている。

手順①:uv をインストール
まずはツール実行ランナーである uv を導入する。
Windows(PowerShell)の場合:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール確認:
uvx --version
uvx はツールを仮想環境込みでその場実行するコマンドで、pipやvenvを意識する必要がないのが利点。
手順②:MCP設定を追加
MCPクライアント(例:LM Studio / Claude Desktop)に以下を追加する。
基本形:
{
"mcpServers": {
"duckduckgo": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}
これだけで、DuckDuckGo検索とページ取得(fetch)が使えるようになる。
手順③:うまく動かない場合(重要)
環境によっては uvx が見つからないケースがある。その場合は絶対パス指定にする。
{
"mcpServers": {
"duckduckgo": {
"command": "C:\\Users\\ユーザー名\\.local\\bin\\uvx.exe",
"args": ["duckduckgo-mcp-server"]
}
}
}
ここはハマりポイント。
特に Windows は PATH 周りでコケることがあるので、最初から絶対パスでもOK。
手順④:日本向け設定(任意)
検索結果の質を上げるため、地域設定を入れておくと安定する。
{
"mcpServers": {
"duckduckgo": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"],
"env": {
"DDG_REGION": "jp-ja",
"DDG_SAFE_SEARCH": "MODERATE"
}
}
}
}
設定ファイルの場所(Claude Desktop)
参考までに、Claude Desktop の場合はここ:
%APPDATA%\Claude\claude_desktop_config.json
LM Studio側でも同様に MCP 設定を追加すれば動作する。
何ができるようになるのか
DuckDuckGo MCP は主に2つのツールを提供する:
- search:検索結果一覧を取得
- fetch_content:URLの本文を取得
今回の検証でも見えた通り、
「検索」はどのモデルでもそれなりに使えるが、
「fetchして読む」フェーズで差がはっきり出る。
つまり、このセットアップ自体はシンプルだが、
実用性は完全に“モデル側の挙動”に依存する。
実運用での注意点
- レート制限あり(連続 fetch は詰まる)
- 一覧ページはモデルによって扱いが不安定
- 無限ループ(Search→Fetch)に入るモデルもある
特に gpt-oss 系で見られたように、
Tool Use が弱いモデルはここで詰まりやすい。
まとめ
DuckDuckGo MCP の導入は、Playwrightの導入をすることを思えば、驚くほど軽い。
だが、実用性は「どのモデルに読ませるか」で決まる。
今回の検証環境でも、
- Gemma 4 → 読む。だが慎重すぎる
- Qwen3.5 → 速い。だが読まない
- gpt-oss → 迷う。前に進まない
という差がはっきり出た。
つまりこれは「検索ツールの話」ではなく、
“ローカルLLMに外界を与えた時の挙動差”を見るための装置だ。




