𝗬𝗼𝘂𝗿 𝗠𝗖𝗣 𝗦𝗲𝗿𝘃𝗲𝗿 𝗗𝗼𝗲𝘀𝗻'𝘁 𝗡𝗲𝗲𝗱 𝟰𝟬 𝗧𝗼𝗼𝗹𝘀
Demo MCP sering kali menunjukkan segalanya sekaligus. Mereka menunjukkan setiap endpoint dan setiap tabel database. Mereka mengklaim bahwa agent dapat memanggil apa saja.
Ini terasa hebat selama sepuluh menit. Kemudian modelnya gagal. Ia memanggil tool yang salah. Ia mengirimkan argumen dengan format yang salah. Ia meminta grafik dari endpoint pencarian. Ia mencoba kembali tindakan yang bersifat destruktif.
Masalahnya bukan pada MCP. Masalahnya adalah memperlakukan MCP seperti adaptor ajaib untuk backend Anda.
Server MCP bukan sekadar API Anda yang dibuat dapat diakses oleh agent. Ia adalah antarmuka produk untuk pengguna yang sangat literal dan sangat mudah teralihkan. Pengguna tersebut adalah model bahasa.
Jika Anda memberi model 40 tool yang serupa, Anda tidak memberinya kekuatan. Anda memberinya 40 cara untuk menjadi "hampir benar".
Berhentilah mencerminkan rute API Anda. Manusia dapat membaca dokumentasi dan memahami konteks. Model melakukan pencocokan pola pada nama dan deskripsi.
Bangun lapisan MCP Anda berdasarkan niat pengguna.
Alih-alih mencerminkan setiap rute, kelompokkan mereka ke dalam batasan yang jelas:
- Satu tool untuk ringkasan pasar
- Satu tool untuk kalender rilis
- Satu tool untuk snapshot data spesifik
- Satu tool untuk indikator historis
Sebuah rute API mengatakan: Jika Anda mengirim permintaan ini, server akan merespons. Sebuah tool MCP harus mengatakan: Gunakan saya untuk pekerjaan tepat ini, dengan input tepat ini, dan harapkan hasil spesifik ini.
Deskripsi tool yang baik adalah logika perutean, bukan salinan pemasaran.
Buruk: name: get_data description: Mengambil data dari API.
Lebih Baik: name: lookup_release_calendar description: Kembalikan peristiwa ekonomi yang dijadwalkan untuk satu mata uang dan rentang tanggal. Gunakan ini sebelum menjawab pertanyaan tentang peristiwa makro mendatang.
Ikuti aturan ini untuk agent yang lebih baik:
Gunakan nama yang membosankan. Pengembang menyukai nama yang ringkas seperti
fetchatauquery. Model membutuhkan nama yang spesifik sepertisearch_docsataucheck_deployment_status. Nama yang ambigu itu mahal harganya.Kendalikan bentuk respons. Jangan mengembalikan objek bersarang yang raksasa. Kembalikan bentuk terkecil yang mendukung pekerjaan tersebut. Jika model melihat terlalu banyak data, ia akan menggunakan field yang salah atau berhalusinasi tentang detailnya.
Rancang untuk kegagalan. Kualitas produksi berasal dari cara Anda menangani kesalahan. Jangan hanya mengembalikan error 500 atau array kosong. Beritahu model mengapa ia gagal. Jika tidak ada catatan yang cocok, beri tahu model untuk menyarankan rentang tanggal yang lebih luas kepada pengguna.
Tool agent terbaik bukanlah yang paling kuat. Melainkan yang tidak mungkin disalahpahami oleh model.
Source: https://dev.to/roberttidball/your-mcp-server-doesnt-need-40-tools-2ig1
Optional learning community: https://t.me/GyaanSetuAi
