
Claude Code の Web Search が動かない? あなただけではありません。 権限拒否、「Did 0 searches」という結果、何も起きないサイレント失敗など、Anthropic の組み込み WebSearch ツールは開発者にとって継続的なストレス要因になっています。この記事では、よくある4つの原因とそれぞれの対処法、さらに壊れない代替手段までまとめて解説します。
Claude Code の Web Search が壊れる理由
Claude Code のネイティブ WebSearch ツール (web_search) は、外部連携ではなく Claude モデル自体に組み込まれています。つまり壊れるときは、Claude の推論レイヤー内部で壊れるため、通常のツール障害よりデバッグが難しくなります。
特によくある失敗パターンは次の4つです。
| 問題 | 表示される症状 | 根本原因 |
|---|---|---|
| Permission denied | --permissionless モードでも「Permission denied」のポップアップが出る |
settings.json の競合、または Edit(*) の上書き |
| サイレント失敗 | 結果が出ず「Did 0 searches」と表示される | API バグ、または blocked_domains: [] による不正なリクエスト |
| ツールが存在しない | Tool web_search not found / 422 エラー |
モデルまたは API バージョンの不一致 |
| 別のツールが使われる | Claude が Chrome connector や web_fetch を使おうとする |
モデルルーティングの問題 |
これらはあなたのせいではありません。いずれもドキュメント化されたバグで、中には GitHub 上で何か月も未解決のものもあります。
対処法 1: 権限設定を確認する
最も多い原因: settings.json の permissions ブロックが、気づかないうちに WebSearch をブロックしていることです。
手順 1: 設定ファイルを確認する
cat ~/.claude/settings.json
手順 2: 次のパターンを探す
問題あり — Edit(*) が WebSearch をブロック:
{
"permissions": {
"allow": ["Edit(*)"],
"deny": []
}
}
allow リストにある Edit(*) のワイルドカードが原因で、Claude Code が WebSearch のたびに権限確認を求め、バージョンによっては黙って拒否することがあります。
修正例:
{
"permissions": {
"allow": [
"Edit(*)",
"WebSearch(*)",
"WebFetch(*)"
],
"deny": []
}
}
手順 3: 競合する deny ルールを確認する
deny ブロックに WebSearch(**) や WebFetch(**) がある場合は削除してください。
// ❌ これは Web Search をブロックし、さらにプラグインの読み込みも壊します
{
"permissions": {
"deny": ["WebSearch(**)", "WebFetch(**)"]
}
}
既知の GitHub バグ (#11812): permissions.deny に WebFetch/WebSearch を追加すると、すべてのプラグインが読み込めなくなります。設定変更後にプラグインが壊れたなら、これが原因の可能性が高いです。
手順 4: 設定を反映する
# 変更を反映するには Claude Code のセッションを再起動してください
# settings.json の変更にホットリロードはありません
対処法 2: Permissionless モードを試す(ただし注意点あり)
権限設定が原因でない場合は、Claude Code を permissionless モードで実行します。
claude --permissionless
ただし GitHub Issue #21091 に注意: permissionless モードでも WebSearch が拒否されることがあります。これは Claude Max 契約者にも影響することが確認されているバグです。この問題に当たっている場合の回避策は次のとおりです。
# 組み込み WebSearch を完全に回避して MCP サーバーを使う
# (対処法 3 を参照)
対処法 3: Web Search 用の MCP サーバーを使う
組み込み WebSearch が壊れているとき、Claude Code 内で最も安定している対処法は、外部で Web Search を処理する MCP サーバーを使うことです。
選択肢 A: Brave Search MCP Server
# Brave Search MCP server をインストール
claude mcp add brave-search -- npx -y @anthropic/mcp-server-brave-search \
--env BRAVE_API_KEY=your_brave_api_key_here
Brave Search MCP Server は Anthropic が保守しており、「公式」に最も近い Web Search ツールです。Claude Code が解析・引用しやすい構造化検索結果を返します。
メリット:
- Anthropic が保守
- 構造化されていて引用しやすい結果
- 無料枠あり(月 2,000 クエリ)
デメリット:
- 別途 Brave API キーが必要
- 得られるのは検索スニペットのみで、ページ全文ではない
- 1回の呼び出しごとに約 4,000 トークンのツール説明オーバーヘッドがある
選択肢 B: Tavily Search MCP Server
claude mcp add tavily -- npx -y @tavily/mcp-server \
--env TAVILY_API_KEY=your_tavily_key_here
Tavily は AI エージェント向け検索に特化しており、スニペットに加えてページ本文も返します。
選択肢 C: SerpAPI MCP Server
claude mcp add serpapi -- npx -y @serpapi/mcp-server \
--env SERPAPI_API_KEY=your_serpapi_key_here
SerpAPI は Google 検索結果を提供します。最も柔軟ですが、コストも最も高めです。
対処法 4: 確実な代替手段 — AnyCap Web Search(MCP不要、権限不要)
おすすめの対象: とにかく毎回確実に Web Search を使いたい開発者。
Claude Code の組み込み WebSearch の本当の問題は、単なるバグだけではありません。根本にあるのはアーキテクチャです。Web Search がモデル内部ツールとして実装されているため、Claude のコンテキストウィンドウ、権限モデル、レート制限を共有しています。そのどれかが崩れると、Web Search も一緒に壊れます。
AnyCap は別のアプローチを取ります。Web Search は Claude Code のコンテキスト外で動く外部機能として実行され、独自エンジン、独自 API キー、独自の出力形式を持ちます。Claude Code 側では通常の CLI ツールのように呼び出すだけです。
セットアップ(30秒 — 画像生成と同じインストール手順)
# すでに画像生成用に AnyCap を入れているならスキップ
npx -y skills add anycap-ai/anycap -a claude-code -y
curl -fsSL https://anycap.ai/install.sh | sh
anycap login
Claude Code から Web Search を使う
基本的な Web Search:
anycap web search \
--query "Claude Code web search permission denied fix" \
--results 5
出力:
Searching for: Claude Code web search permission denied fix...
Found 5 results:
1. GitHub Issue #21091 — WebSearch Tool Blocked Despite Permissionless Mode
https://github.com/anthropics/claude-code/issues/21091
Relevant: Confirmed bug — WebSearch denied even with --permissionless flag
2. Reddit r/ClaudeCode — How to grant Claude Code web search permission
https://reddit.com/r/ClaudeCode/comments/1kouc2z/
Relevant: Edit(*) in settings.json blocks WebSearch
3-5. [additional results]
Claude Code はこれらの結果をそのまま読み取り、引用できます。権限ポップアップも、「Did 0 searches」も、settings.json のデバッグも不要です。
ディープリサーチ(複数ソース):
anycap web deep-research \
--topic "State of AI coding agents 2026" \
--depth 3 \
--output research.md
これは複数の検索クエリを実行し、リンクをたどり、内容を抽出し、引用付きの調査ドキュメントを作成します。しかもすべて Claude Code のコンテキストウィンドウ外で実行されます。
ライブ Web クロール(ページ全文取得):
anycap web crawl \
--url "https://docs.anthropic.com/en/docs/claude-code/web-search" \
--format markdown
ページ全体を Markdown で返すため、Claude Code が解析・参照できます。
この方法が壊れにくい理由
| Claude Code 組み込み WebSearch | AnyCap Web Search | |
|---|---|---|
| 権限モデル | Claude Code の権限設定に依存(バグあり) | 外部実行 — Claude の権限不要 |
| API ルーティング | モデル内部(ルーティングバグの影響を受ける) | 専用検索エンジン |
| レート制限 | Claude Code の制限を共有 | 別 API で独立 |
| 出力形式 | Claude が整形したテキスト | ソース URL 付きの構造化 JSON |
| ページ全文 | なし(スニペットのみ) | あり(Web Crawl 経由) |
| ディープリサーチ | なし | あり(複数クエリ、複数ソース) |
| コンテキスト負荷 | 可変(モデル依存) | 1回あたり約 1,000 トークン |
| 認証情報 | Anthropic API キー | AnyCap ログイン 1つ |
比較: どの対処法を使うべきか?
| 対処法 | 効くケース | セットアップ時間 | 信頼性 |
|---|---|---|---|
| 対処法 1: 権限設定の修正 | settings.json が原因のとき |
5分 | 中程度(また壊れる可能性あり) |
| 対処法 2: Permissionless モード | 権限モデルが原因のとき | 1分 | 低い(既知のバグ #21091) |
| 対処法 3: MCP サーバー | API キーと忍耐があるとき | 15〜30分 | 高い(外部エンジン) |
| 対処法 4: AnyCap CLI | とにかく検索を確実に使いたいとき | 2分 | 最も高い(専用エンジン) |
FAQ
Claude Code が「Did 0 searches」と表示するのはなぜ?
これは、Claude Code の内部 WebSearch ツールが実行されたのに結果を返さない既知のバグです。ブラウザなら結果が出る検索でも発生します。原因は API リクエスト内の blocked_domains: [] パラメータが不正であることです。確実な対処法は外部検索ツールを使うことだけです(対処法 3 または対処法 4)。
Claude Code の Web Search は無料ですか?
はい。Claude Code の組み込み WebSearch は Claude のサブスクリプション(Pro、Max、Team)に含まれています。ただし、MCP ベースの代替手段(対処法 3)は通常、別料金体系の API キーが必要です。AnyCap の Web Search は従量課金で、5 ドル分の無料クレジットから始められます。
Claude Code から Google Search を使えますか?
組み込み WebSearch ツールでは使えません。これは Anthropic 独自の検索バックエンドを利用しているためです。Google の検索結果が必要なら、SerpAPI MCP Server(対処法 3 の選択肢 C)か、複数ソースの集約結果を返す AnyCap の anycap web search を使ってください。
なぜ claude.ai では Web Search が動くのに、Claude Code では動かないのですか?
Claude Code と claude.ai では Web Search の実装が異なります。claude.ai の Web インターフェースはより成熟した検索統合を備えていますが、Claude Code のターミナルベース WebSearch は比較的新しいツールで、既知のバグが残っています。Web では動くのにターミナルでは動かない場合、Claude Code 固有の問題に当たっている可能性が高く、典型的には権限設定か「Did 0 searches」バグです。
Claude Code がオフラインでも AnyCap Web Search は使えますか?
いいえ。ただし、それは他の方法でも同じです。AnyCap Web Search は検索エンジンに実際の HTTP リクエストを送るため、インターネット接続が必要です。一方で、必要 ない のは、Claude Code の WebSearch ツールが正常であること、権限が承認されていること、レート制限に余裕があることです。ネット接続さえあれば、AnyCap Search は動きます。
次に読むべき記事
- Claude Code チュートリアル: ゼロから最初の動くセッションまで(2026) — AnyCap 連携を含む完全セットアップガイド
- Claude Code が実運用で Web Search を必要とする理由 — コーディングエージェントにライブ Web アクセスが必要な理由
- Claude Code で画像生成する方法(2026) — Web Search とあわせて画像生成も追加する
- Claude Code に画像生成が必要な理由 — ビジュアル機能の不足を解説
- Claude Code Agent SDK ガイド(2026) — Claude を使ったマルチエージェントオーケストレーション
- ターミナルエージェント徹底比較: Claude Code vs Codex vs Windsurf — Claude Code を他のターミナルエージェントと比較