Claude Code Web Search Tidak Berfungsi? 4 Solusi dan Alternatif yang Andal

Claude Code web search menampilkan “Permission denied”, “Did 0 searches”, atau tidak berfungsi sama sekali? Ini 4 solusi — plus alternatif pencarian eksternal yang selalu bisa diandalkan.

by AnyCap

Ikon pencarian rusak dengan efek glitch dan indikator error merah — estetika terminal cyberpunk gelap

Claude Code web search tidak berfungsi? Anda tidak sendirian. Mulai dari penolakan izin, hasil “Did 0 searches”, hingga kegagalan tanpa pesan, tool WebSearch bawaan Anthropic sudah lama menjadi sumber frustrasi bagi developer. Panduan ini membahas empat penyebab yang paling umum — dan solusi untuk masing-masing, termasuk alternatif yang tidak pernah bermasalah.


Mengapa Claude Code Web Search Bisa Rusak

Tool WebSearch native Claude Code (web_search) tertanam langsung di dalam model Claude itu sendiri — bukan integrasi eksternal. Artinya, saat tool ini bermasalah, kerusakannya terjadi di dalam lapisan reasoning Claude, sehingga lebih sulit di-debug dibanding kegagalan tool biasa.

Empat mode kegagalan yang paling umum:

Masalah Yang Anda Lihat Penyebab Utama
Permission denied Pop-up “Permission denied”, bahkan dalam mode --permissionless Konflik settings.json atau override Edit(*)
Kegagalan diam-diam “Did 0 searches” tanpa hasil Bug API atau request blocked_domains: [] yang malformed
Tool hilang Tool web_search tidak ditemukan / error 422 Ketidakcocokan versi model atau API
Tool yang dipakai salah Claude mencoba Chrome connector atau web_fetch Masalah routing model

Tidak ada satu pun yang salah dari pihak Anda. Semua ini adalah bug yang terdokumentasi — beberapa sudah berbulan-bulan terbuka di GitHub.


Solusi 1: Periksa Konfigurasi Izin Anda

Masalah paling umum: Blok permissions di settings.json Anda memblokir WebSearch tanpa Anda sadari.

Langkah 1: Temukan file settings Anda

cat ~/.claude/settings.json

Langkah 2: Cari pola berikut

Bermasalah — Edit(*) memblokir WebSearch:

{
  "permissions": {
    "allow": ["Edit(*)"],
    "deny": []
  }
}

Wildcard Edit(*) di daftar allow dapat membuat Claude Code meminta izin pada setiap panggilan WebSearch — dan pada beberapa versi, diam-diam menolaknya.

Perbaikan:

{
  "permissions": {
    "allow": [
      "Edit(*)",
      "WebSearch(*)",
      "WebFetch(*)"
    ],
    "deny": []
  }
}

Langkah 3: Periksa aturan deny yang bentrok

Jika Anda memiliki WebSearch(**) atau WebFetch(**) di blok deny, hapus:

// ❌ Ini memblokir web search DAN merusak pemuatan plugin
{
  "permissions": {
    "deny": ["WebSearch(**)", "WebFetch(**)"]
  }
}

Bug GitHub yang diketahui (#11812): Menambahkan WebFetch/WebSearch ke permissions.deny membuat semua plugin gagal dimuat. Jika plugin Anda rusak setelah mengubah settings, ini kemungkinan penyebabnya.

Langkah 4: Muat ulang settings

# Restart sesi Claude Code Anda agar perubahan berlaku
# Tidak ada hot-reload untuk perubahan settings.json

Solusi 2: Coba Permissionless Mode (Dengan Catatan)

Jika konfigurasi izin bukan masalahnya, jalankan Claude Code dalam permissionless mode:

claude --permissionless

Tetapi perhatikan GitHub issue #21091: Bahkan dalam permissionless mode, WebSearch masih bisa ditolak. Ini adalah bug terkonfirmasi yang memengaruhi pelanggan Claude Max. Jika ini yang Anda alami, workaround-nya adalah:

# Lewati WebSearch bawaan sepenuhnya dan gunakan server MCP
# (lihat Solusi 3)

Ketika WebSearch bawaan rusak, solusi paling andal di dalam Claude Code adalah menggunakan server MCP yang menangani pencarian web secara eksternal:

Opsi A: Brave Search MCP Server

# Instal 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 dikelola oleh Anthropic dan merupakan hal yang paling dekat dengan tool pencarian web yang “resmi”. Server ini mengembalikan hasil pencarian terstruktur yang bisa diparse dan dikutip oleh Claude Code.

Kelebihan:

  • Dikelola oleh Anthropic
  • Hasil terstruktur dan siap dikutip
  • Tersedia tier gratis (2.000 query/bulan)

Kekurangan:

  • Memerlukan Brave API key terpisah
  • Hanya menyediakan snippet pencarian — bukan konten halaman penuh
  • Setiap panggilan menambah overhead deskripsi tool sekitar 4.000 token

Opsi B: Tavily Search MCP Server

claude mcp add tavily -- npx -y @tavily/mcp-server \
  --env TAVILY_API_KEY=your_tavily_key_here

Tavily dibuat khusus untuk pencarian AI agent — selain snippet, tool ini juga mengembalikan konten halaman penuh.

Opsi C: SerpAPI MCP Server

claude mcp add serpapi -- npx -y @serpapi/mcp-server \
  --env SERPAPI_API_KEY=your_serpapi_key_here

SerpAPI menyediakan hasil pencarian Google. Paling fleksibel, tetapi juga paling mahal.


Solusi 4: Alternatif yang Andal — AnyCap Web Search (Tanpa MCP, Tanpa Izin)

Paling cocok untuk: Developer yang hanya ingin web search berfungsi setiap saat — tanpa debugging.

Masalah sebenarnya pada WebSearch bawaan Claude Code bukan hanya bug. Masalahnya ada pada arsitektur dasarnya: karena web search adalah tool internal model, ia berbagi context window, model izin, dan rate limit dengan Claude. Saat salah satu gagal, web search ikut gagal.

AnyCap memakai pendekatan berbeda: web search berjalan sebagai kapabilitas eksternal di luar konteks Claude Code — dengan engine sendiri, API key sendiri, dan format output sendiri. Claude Code cukup memanggilnya seperti tool CLI biasa.

Setup (30 detik — instalasi sama seperti image generation)

# Jika Anda sudah menginstal AnyCap untuk image generation, lewati ini
npx -y skills add anycap-ai/anycap -a claude-code -y
curl -fsSL https://anycap.ai/install.sh | sh
anycap login

Cari web dari Claude Code

Web search dasar:

anycap web search \
  --query "Claude Code web search permission denied fix" \
  --results 5

Output:

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 dapat membaca dan mengutip hasil ini secara langsung — tanpa pop-up izin, tanpa “Did 0 searches”, tanpa debugging settings.json.

Riset mendalam (multi-sumber):

anycap web deep-research \
  --topic "State of AI coding agents 2026" \
  --depth 3 \
  --output research.md

Ini menjalankan banyak query pencarian, mengikuti tautan, mengekstrak konten, dan menyusun dokumen riset yang memiliki sitasi — semuanya di luar context window Claude Code.

Live web crawl (konten halaman penuh):

anycap web crawl \
  --url "https://docs.anthropic.com/en/docs/claude-code/web-search" \
  --format markdown

Mengembalikan seluruh halaman sebagai markdown yang dapat diparse dan dirujuk oleh Claude Code.

Mengapa pendekatan ini tidak mudah rusak

Claude Code WebSearch bawaan AnyCap Web Search
Model izin Izin Claude Code (rawan bug) Eksternal — tidak perlu izin Claude
Routing API Internal model (terpengaruh bug routing) Engine pencarian khusus
Rate limit Berbagi rate limit Claude Code API terpisah, limit independen
Format output Teks yang diformat Claude JSON terstruktur dengan URL sumber
Konten halaman penuh Tidak (snippet saja) Ya (via web crawl)
Riset mendalam Tidak Ya (multi-query, multi-sumber)
Overhead konteks Bervariasi (tergantung model) ~1.000 token per panggilan
Kredensial Anthropic API key Satu login AnyCap

Perbandingan: Solusi Mana yang Sebaiknya Anda Gunakan?

Solusi Berfungsi Saat Waktu Setup Keandalan
Solusi 1: Konfigurasi izin settings.json adalah masalahnya 5 menit Sedang (bisa rusak lagi)
Solusi 2: Permissionless mode Model izin adalah masalahnya 1 menit Rendah (bug #21091 sudah diketahui)
Solusi 3: Server MCP Anda punya API key dan kesabaran 15–30 menit Tinggi (engine eksternal)
Solusi 4: AnyCap CLI Anda ingin pencarian langsung berfungsi 2 menit Paling tinggi (engine khusus)

FAQ

Mengapa Claude Code menampilkan “Did 0 searches”?

Ini adalah bug yang diketahui ketika tool WebSearch internal Claude Code berjalan tetapi tidak mengembalikan hasil — bahkan untuk query yang seharusnya memberi hasil di browser. Penyebabnya adalah parameter blocked_domains: [] yang malformed di request API. Satu-satunya solusi yang benar-benar andal adalah menggunakan tool pencarian eksternal (Solusi 3 atau Solusi 4).

Apakah Claude Code web search gratis?

Ya, WebSearch bawaan Claude Code sudah termasuk dalam langganan Claude Anda (Pro, Max, atau Team). Namun, alternatif berbasis MCP (Solusi 3) biasanya memerlukan API key terpisah dengan harga masing-masing. AnyCap web search bersifat pay-as-you-go dan dimulai dengan kredit gratis $5.

Apakah saya bisa memakai Google Search dari Claude Code?

Tidak dengan tool WebSearch bawaan — karena tool itu memakai backend pencarian milik Anthropic sendiri. Untuk hasil Google secara khusus, gunakan SerpAPI MCP server (Solusi 3, Opsi C) atau anycap web search dari AnyCap yang mengembalikan hasil agregat dari berbagai sumber.

Mengapa web search berfungsi di claude.ai tetapi tidak di Claude Code?

Claude Code dan claude.ai menggunakan implementasi web search yang berbeda. Antarmuka web claude.ai memiliki integrasi pencarian yang lebih matang; WebSearch berbasis terminal di Claude Code adalah tool yang lebih baru dan masih memiliki bug yang diketahui. Jika pencarian berfungsi di web tetapi tidak di terminal Anda, berarti Anda terkena masalah khusus Claude Code — paling sering konfigurasi izin atau bug “Did 0 searches”.

Apakah AnyCap web search berfungsi saat Claude Code offline?

Tidak — tetapi yang lain juga tidak akan berfungsi. AnyCap web search memerlukan koneksi internet karena melakukan request HTTP nyata ke search engine. Yang tidak dibutuhkan adalah WebSearch tool Claude Code harus berfungsi, izin harus disetujui, atau rate limit harus longgar. Jika ada internet, pencarian AnyCap akan berjalan.


Langkah Berikutnya