Lazy Loading MCP Tools: Siapa Yang Menyokongnya dan Bagaimana

Kebanyakan orang menyangka kos pelayan MCP terletak pada kod. Mereka silap.

Jika anda membina pelayan MCP, anda akan menghadapi dua jenis kos token:

  • Kos tetap: Definisi alatan yang dimuatkan ke dalam konteks pada setiap pusingan.
  • Kos berubah: Saiz respons yang dikembalikan oleh sesuatu alatan.

Anda mengawal kos berubah. Anda boleh melakukan paginasi pada hasil atau mengehadkan saiz output.

Anda tidak mengawal kos tetap. Itu adalah tugas hos (klien).

Jika anda mempunyai sepuluh pelayan dengan banyak alatan, anda mungkin membazirkan 40,000 token sebelum model sempat membaca mesej pertama anda. Ini berlaku kerana hos memuatkan setiap definisi alatan secara awal.

Penyelesaiannya ialah lazy loading. Ini bermakna hos hanya memuatkan alatan carian yang kecil dan menarik definisi lain hanya apabila diperlukan.

Masalahnya? Kebanyakan klien belum menyokong perkara ini.

Status semasa lazy loading:

  • Claude Code: Menyokongnya. Alatan dimuatkan mengikut permintaan melalui alatan carian.
  • Cursor, Devin, dan lain-lain: Mereka tidak menyokongnya. Mereka memuatkan semuanya sekaligus.

Jika konteks anda menjadi terlalu besar pada klien yang tidak mempunyai lazy loading, anda mempunyai dua pilihan:

  1. Gunakan proxy lazy Halakan hos anda ke pelayan proxy dan bukannya pelayan sebenar anda. Proxy tersebut hanya mendedahkan dua alatan: search_tools dan execute_tool. Ia memuatkan definisi sebenar anda hanya apabila diminta. Ini mengecilkan konteks anda tetapi menghapuskan kawalan kebenaran yang terperinci.

  2. Gunakan corak router Jika satu pelayan menjadi terlalu besar, jangan tambah lebih banyak alatan. Sebaliknya, cipta satu alatan dengan parameter operasi. Sebagai contoh, gunakan satu alatan "docs" dengan arahan seperti "list", "get", atau "search". Ini mengurangkan jumlah skema yang perlu dimuatkan oleh hos.

Ringkasan strategi:

  • 6 hingga 15 alatan: Jangan buat apa-apa. Kosnya terlalu rendah untuk dibimbangkan.
  • Banyak alatan dalam satu pelayan: Gunakan corak router.
  • Banyak pelayan yang berbeza: Gunakan proxy lazy.

Semak tingkah laku klien anda sebelum anda menghabiskan masa berjam-jam untuk mengoptimumkan kod anda. Penyelesaiannya mungkin bukan pada pelayan anda sama sekali