Blog

Pencarian Alat di Claude Code: Cara Agen Menemukan Alat MCP yang Dibutuhkan

Markdown

Cara kerja pencarian alat di Claude Code: apa yang langsung dimuat ke dalam konteks, kapan mekanisme ini nonaktif dengan sendirinya, dan cara mengonfigurasi ENABLE_TOOL_SEARCH dan alwaysLoad.

Baca artikel lengkap

Jika Anda telah menghubungkan beberapa server MCP ke Claude Code, pencarian alat memungkinkannya memuat alat yang dibutuhkan sesuai permintaan, tanpa memuat semua definisi terlebih dahulu. Saat startup, agen menerima nama alat yang ditangguhkan dan instruksi server, lalu mencari katalog untuk menemukan yang dibutuhkan. Ini membantunya bekerja dengan sekumpulan alat yang besar: dokumentasi Anthropic menyatakan bahwa akurasi pemilihan menurun ketika lebih dari 30-50 alat dimuat sekaligus. Ini adalah panduan umum, bukan pengukuran sesi Anda. Pencarian alat diaktifkan secara default saat model mendukungnya, tetapi platform, proksi, atau pengaturan dapat menonaktifkannya.

Dokumentasi Ailoot: API, kunci, dan penyiapan.

Apa yang terjadi pada konteks tanpa pencarian alat

Setiap server MCP yang terhubung menambahkan alatnya ke daftar hal yang dapat dipanggil agen. Tanpa pencarian alat, definisinya — nama, deskripsi, dan skema parameter — dimuat ke dalam konteks terlebih dahulu. Server terhubung di latar belakang saat sesi dimulai. Jika alat dari server yang belum selesai terhubung diperlukan, Claude Code menunggu melalui alat internal WaitForMcpServers. Anda dapat menilai secara terpisah berapa banyak alat dan token yang ditambahkan server tertentu pada setiap koneksi.

Dokumentasi resmi Anthropic memberikan dua angka perkiraan (angka umum, tanpa metode pengukuran yang dinyatakan):

  • 50 alat dapat menggunakan 10-20 ribu token konteks;
  • akurasi dalam memilih alat yang tepat menurun ketika lebih dari 30-50 alat dimuat sekaligus.

Cara menilai pencarian alat dari pengaturan

Untuk memahami apakah pencarian alat seharusnya berfungsi dalam sesi saat ini, periksa kondisi berikut:

  • model mana yang merespons — Sonnet/Haiku/Opus 4.5 atau yang lebih baru: mekanisme tersedia; model yang lebih lama: tidak tersedia;
  • apakah ANTHROPIC_BASE_URL diatur ke host nonstandar — dalam hal ini, mekanisme nonaktif secara default kecuali diaktifkan secara eksplisit melalui ENABLE_TOOL_SEARCH;
  • nilai variabel ENABLE_TOOL_SEARCH — false menonaktifkan mekanisme sepenuhnya; auto/auto:N mengaktifkannya hanya ketika jumlah definisi mencapai ambang batas;
  • apakah CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS diatur — tanpa pengaturan terkelola organisasi, variabel ini membuat pencarian alat tetap nonaktif meskipun pengguna telah mengatur ENABLE_TOOL_SEARCH;
  • apakah alat ToolSearch diblokir melalui permissions.deny di pengaturan — pembatasan semacam itu menonaktifkan pencarian;
  • platform mana yang digunakan — mekanisme ini tidak tersedia pada deployment Microsoft Foundry di Azure, sedangkan pada Google Cloud Agent Platform, perilakunya bergantung pada versi dan model Claude Code.

Pemeriksaan ini memungkinkan Anda menilai status dari konfigurasi, tetapi tidak mengamatinya di dalam sesi. Bagian MCP dan bagian pencarian alat dalam dokumentasi Agent SDK tidak menjelaskan indikator langsung “pencarian alat: aktif/nonaktif” di antarmuka. Tidak adanya keterangan dalam kedua dokumen ini tidak membuktikan bahwa indikator semacam itu tidak ada di mana pun.

Anda dapat mengatur variabel sebelum memulai sesi, misalnya ENABLE_TOOL_SEARCH=auto:15 claude. Untuk memastikan alat dari server tertentu selalu dimuat, gunakan kolom alwaysLoad: true dalam konfigurasi server tersebut. Kolom ini tersedia untuk semua jenis server; kondisi dan batasannya dijelaskan pada bagian alwaysLoad di bawah.

Cara kerja pencarian alat

Saat pencarian alat diaktifkan, hanya nama alat yang ditangguhkan dan instruksi server yang dimuat ke dalam konteks saat sesi dimulai. Instruksi server menjelaskan tugas apa yang cocok dibantu oleh server tersebut. Ketika suatu tugas memerlukan kemampuan yang belum ada dalam konteks, agen mencari sendiri alat yang sesuai di katalog.

Dokumentasi Agent SDK menjelaskan mekanisme pencarian secara lebih terperinci: secara default, satu pencarian memuat hingga lima alat paling relevan dari katalog. Alat tersebut tetap tersedia untuk giliran berikutnya dalam sesi sampai SDK memadatkan pesan saat agen menemukannya. Setelah pemadatan, alat yang sebelumnya ditemukan dapat keluar dari konteks, dan agen mencarinya kembali saat diperlukan berikutnya. Katalog mendukung hingga 10 000 alat. Dokumentasi MCP untuk Claude Code sendiri tidak memberikan angka spesifik ini, tetapi menjelaskan prinsip pemuatan tertunda yang sama.

Menurut dokumentasi Agent SDK, setiap pencarian menambahkan satu bolak-balik tambahan. Dokumentasi tidak menjelaskan secara persis apa yang termasuk dalam bolak-balik tersebut. Untuk Claude Code, dokumentasi MCP juga menjelaskan perbedaan dalam pelaporan kesalahan: tanpa pencarian alat, Claude Code tidak memberi tahu model tentang kegagalan koneksi server. Saat pencarian diaktifkan, model menerima informasi tentang server mana yang gagal terhubung dan apa kesalahannya.

Claude Code tidak menetapkan batas tetap jumlah alat dari satu server. Batas praktisnya adalah anggaran jendela konteks untuk sesi tertentu.

Mengonfigurasi alat adalah salah satu tugas dalam mengelola konteks agen AI.

Kapan pencarian alat dinonaktifkan secara default

Mekanisme ini diaktifkan secara default, tetapi pengoperasiannya bergantung pada model, host API, dan platform.

Model. Pencarian alat memerlukan model yang mendukung blok tool_reference: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5, atau yang lebih baru. Untuk model yang lebih lama, Claude Code memuat definisi alat terlebih dahulu.

Host API. Claude Code menonaktifkan pencarian alat ketika variabel ANTHROPIC_BASE_URL mengarah ke host pihak ketiga: kebanyakan proksi tidak meneruskan blok tool_reference khusus. Ini berlaku saat menghubungkan ke Claude melalui gateway atau server proksi Anda sendiri, alih-alih langsung melalui alamat Anthropic. Alasan penonaktifannya adalah ANTHROPIC_BASE_URL yang nonstandar; cara pembayaran langganan tidak dengan sendirinya menyebabkan hal ini. Anda dapat secara eksplisit mengatur ENABLE_TOOL_SEARCH untuk mengesampingkan perilaku ini. Jika proksi itu sendiri tidak mendukung blok tool_reference, memaksa mekanisme ini aktif akan menghasilkan kesalahan permintaan. Dalam hal ini, mekanisme tidak akan beralih kembali ke pemuatan definisi terlebih dahulu.

Platform deployment. Pencarian alat tidak berfungsi pada deployment Microsoft Foundry yang dihosting di Azure: server menolak permintaan, dan ENABLE_TOOL_SEARCH tidak mengesampingkan hal ini. Di Google Cloud Agent Platform, sebelum Claude Code versi 2.1.221, mekanisme ini nonaktif untuk semua model kecuali ENABLE_TOOL_SEARCH=true diatur secara eksplisit. Mulai versi tersebut, mekanisme ini diaktifkan secara default untuk Opus/Sonnet/Haiku 4.5 dan yang lebih baru. Untuk model yang lebih lama di platform tersebut, Claude Code tetap memuat semua alat terlebih dahulu karena infrastruktur servernya menolak header internal yang diperlukan.

Variabel ENABLE_TOOL_SEARCH memiliki lima kemungkinan pengaturan:

  • tidak diatur — perilaku standar, dengan pengecualian yang tercantum di atas;
  • true — mekanisme diaktifkan pada model yang mendukungnya, kecuali dalam dua kasus: Azure Foundry dan model Agent Platform yang lebih lama; permintaan yang dikirim melalui proksi tanpa dukungan untuk blok tool_reference akan gagal;
  • auto — Claude Code memuat alat terlebih dahulu selama gabungan definisinya menggunakan kurang dari 10% jendela konteks, lalu beralih ke pemuatan tertunda setelah ambang batas tercapai;
  • auto:N — prinsip yang sama, dengan ambang batas persentase yang ditentukan secara manual;
  • false — mekanisme dinonaktifkan sepenuhnya dan semua alat dimuat terlebih dahulu.

Ada juga variabel CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: jika variabel ini diatur, pencarian alat tetap nonaktif, dan pengaturan ENABLE_TOOL_SEARCH oleh pengguna tidak mengubahnya. Pengecualiannya adalah ketika organisasi mempertahankan pencarian alat tetap aktif melalui pengaturan terkelola, yang tersedia mulai Claude Code versi 2.1.227.

Fungsi alwaysLoad dan dampaknya pada konteks serta startup

Kolom alwaysLoad: true dalam konfigurasi server tersedia untuk semua jenis server. Dengan kolom ini, semua alat dari server tersebut dimuat ke dalam konteks saat startup, apa pun pengaturan ENABLE_TOOL_SEARCH-nya. Agen tidak perlu mencarinya sebelum digunakan.

Memuat alat selalu memiliki dua konsekuensi. Setiap alat yang dimuat terlebih dahulu menggunakan sebagian konteks yang seharusnya tersedia untuk tugas itu sendiri. Selain itu, startup sesi menunggu server ini terhubung, dalam batas waktu standar lima detik.

Pengecualiannya adalah server jarak jauh dengan entri cache yang valid: server tersebut menyediakan alat dari cache tanpa terhubung dan tidak menunda startup. Cache penemuan nonaktif secara default kecuali sudah diaktifkan untuk akun tersebut selama peluncuran bertahap fitur ini. Anda juga dapat mengaktifkannya secara eksplisit melalui MCP_DISCOVERY_CACHE=1. Pengecualian startup cepat berlaku ketika cache aktif dan berisi entri yang valid. Alat dengan alwaysLoad tetap menggunakan konteks secara permanen, terlepas dari apakah agen akan membutuhkannya saat bekerja melalui pencarian.

Bagi siapa pun yang menulis server MCP sendiri: instruksi server membantu Claude memahami kapan harus mencari alat-alatnya, seperti halnya Skills. Claude Code memotong deskripsi setiap alat dan instruksi setiap server hingga 2048 karakter secara default, jadi letakkan detail penting di bagian awal.

Memilih cara memperluas Claude Code bergantung pada lebih dari sekadar jumlah server MCP yang terhubung. Panduan Claude Code: berapa banyak ekstensi yang perlu dipertahankan sekaligus dan Apa yang harus dipilih di Claude Code: Skills, Subagents, MCP, atau Plugins membahas Skills, Subagents, MCP, dan Plugins untuk berbagai tugas. Untuk penyiapan server MCP tertentu langkah demi langkah, lihat Server MCP untuk Claude Code: kombinasi siap pakai.

Selanjutnya

Untuk sekumpulan kurang dari kira-kira 10 alat yang definisinya dapat dimuat ke dalam konteks tanpa kesulitan, dokumentasi Agent SDK menyebutkan bahwa memuat semuanya sekaligus biasanya lebih cepat. Namun, dalam perilaku default Claude Code, ketika variabel tidak diatur dan tidak ada batasan di atas yang berlaku, pencarian alat diaktifkan dan pemuatan alat MCP ditunda hingga pencarian, kecuali untuk server dengan alwaysLoad.

Dalam kasus ini, Anda dapat secara eksplisit mengatur ENABLE_TOOL_SEARCH=auto: definisi akan dimuat terlebih dahulu selama jumlah gabungannya kurang dari 10% jendela konteks, dan pencarian akan diaktifkan setelah ambang batas tercapai. Pilihan lainnya adalah ENABLE_TOOL_SEARCH=false jika Anda tahu jumlahnya tidak akan bertambah. Dalam hal itu, Claude Code akan berhenti memberi tahu model tentang kegagalan koneksi server, seperti dijelaskan di atas.

Dalam kasus lain, periksa kembali kondisi pengoperasian saat lingkungan berubah:

  • beralih ke Sonnet/Haiku/Opus 4.5 atau yang lebih baru jika sesi menggunakan model yang lebih lama;
  • jika koneksi menggunakan ANTHROPIC_BASE_URL nonstandar, atur ENABLE_TOOL_SEARCH=true secara eksplisit hanya jika proksi itu sendiri meneruskan blok tool_reference;
  • pastikan platform deployment bukan salah satu pengecualian: Azure Foundry atau model Google Cloud Agent Platform yang lebih lama.

Jika kondisinya terpenuhi dan pencarian tidak diblokir oleh pengaturan, Anda dapat menghubungkan server MCP yang diperlukan. Gunakan alwaysLoad hanya untuk server yang alatnya dibutuhkan pada setiap giliran sesi; biarkan alat lainnya dimuat melalui pencarian.

Jika Anda memerlukan akses ke model AI melalui Ailoot, kunjungi Ailoot.

Rincian selengkapnya

Pertanyaan tentang Pencarian Alat di Claude Code: Cara Agen Menemukan Alat MCP yang Dibutuhkan

Mengapa pencarian alat bisa gagal di balik proxy meskipun aktif?

Host API pihak ketiga harus mendukung blok tool_reference. Memaksa ENABLE_TOOL_SEARCH aktif tidak dapat menambahkan dukungan itu; proxy yang tidak kompatibel dapat menolak permintaan, bukan kembali memuat semua definisi alat di awal.

Kapan sebaiknya memakai alwaysLoad untuk server MCP?

Gunakan ketika alat server diperlukan pada setiap giliran. Semua definisi alatnya lalu menempati konteks saat startup, dan startup dapat menunggu koneksi kecuali ada entri cache penemuan yang valid.

Semua artikel