Ringkasan Utama
MCP vs function calling membandingkan dua lapisan pemakaian tool oleh AI. Function calling adalah fitur API model: Anda mengirim skema tool JSON, model mengembalikan panggilan terstruktur, lalu kode Anda menjalankannya. Model Context Protocol adalah standar terbuka yang menaruh tool di balik server yang bisa dipakai ulang oleh klien mana pun yang kompatibel. Keduanya saling melengkapi, bukan bersaing.
Baik function calling maupun Model Context Protocol sama-sama membuat large language model bisa memakai tool eksternal, tetapi keduanya menyelesaikan bagian masalah yang berbeda. Yang satu adalah fitur dari API model yang sudah Anda panggil; yang lain adalah protokol yang berada di atasnya. Mencampuradukkan keduanya membuat keputusan arsitektur jadi keliru.
Tulisan ini membahas apa itu masing-masing, perbedaan yang sebenarnya, dan mengapa jawaban jujur untuk MCP vs function calling adalah biasanya Anda membutuhkan keduanya. Di balik layar, klien MCP tetap mengandalkan function calling milik model untuk memilih tool mana yang dijalankan.
Function calling, atau tool use
Function calling, yang oleh Anthropic disebut tool use, adalah kemampuan dari API model. Anda mendeskripsikan setiap tool sebagai skema JSON dengan nama, deskripsi, dan parameter bertipe, lalu mengirim daftar itu dalam request bersama pesan pengguna. Model membaca skema tersebut dan memutuskan apakah sebuah tool membantu menjawab prompt.
Ketika model memutuskan ya, model tidak menjalankan apa pun. Model mengembalikan panggilan tool terstruktur yang menyebut nama fungsi beserta argumennya. Aplikasi Anda yang menjalankan pekerjaan sebenarnya, misalnya kueri database atau request HTTP, lalu mengirim hasilnya kembali agar model bisa menyelesaikan jawabannya. Putaran bolak-balik itulah keseluruhan mekanismenya.
- Anda mendefinisikan tool sebagai skema JSON dan menyertakannya dalam request API.
- Model mengembalikan panggilan terstruktur berisi nama tool dan argumen yang sudah terurai, tetapi tidak pernah menjalankannya.
- Kode Anda yang menjalankan tool dan mengembalikan hasilnya untuk dipakai model.
Model Context Protocol
MCP adalah standar terbuka, diperkenalkan oleh Anthropic pada akhir 2024, untuk menghubungkan aplikasi AI ke sistem eksternal. Alih-alih menanamkan tool ke satu aplikasi, Anda menaruhnya di balik server MCP. Klien mana pun yang kompatibel dengan MCP, seperti Claude Desktop, sebuah IDE, atau aplikasi Anda sendiri, bisa terhubung dan memakainya. Dokumentasinya sendiri menganalogikannya seperti port USB-C untuk AI.
Arsitekturnya client-server di atas JSON-RPC. Aplikasi host membuat satu klien MCP untuk setiap server yang dihubungi. Sebuah server bisa mengekspos tiga jenis primitive: tools, yaitu aksi yang bisa dipanggil model; resources, yaitu data konteks seperti file atau record; dan prompts, yaitu template yang bisa dipakai ulang. Klien menemukan apa yang ditawarkan server, lalu memanggilnya.
Bagaimana function calling dan MCP dibandingkan pada aspek-aspek yang menentukan pilihan arsitektur.
| Aspek | Function calling | MCP |
|---|---|---|
| Apa itu | Fitur API model untuk tool use | Protokol terbuka untuk menghubungkan tool |
| Pemakaian ulang lintas aplikasi | Rangkaian per aplikasi, terikat satu API | Tulis sekali, pakai ulang lintas klien |
| Siapa menjalankan tool | Kode aplikasi Anda | Server MCP yang dipanggil klien |
| Standar | Per penyedia, tidak dibagikan | Ya, satu standar JSON-RPC terbuka |
| Paling cocok untuk | Beberapa tool dalam satu aplikasi | Berbagi tool lintas banyak aplikasi |
Jika Anda mendapati diri menyalin integrasi tool yang sama ke aplikasi kedua, itu pertanda untuk memindahkannya ke balik server MCP agar kedua aplikasi memakai satu implementasi bersama.
Perbedaan yang sebenarnya
Lapisannya adalah kuncinya. Function calling adalah cara satu model mengubah niat menjadi panggilan terstruktur. MCP adalah cara tool dikemas dan dibagikan agar banyak klien memakainya ulang tanpa merangkai ulang. Berikut perbedaan yang benar-benar penting dalam praktik.
- Lapisan: function calling adalah fitur API model, sedangkan MCP adalah protokol yang tidak bergantung transport di atasnya.
- Pemakaian ulang: rangkaian function calling khusus untuk satu aplikasi dan satu API penyedia, sedangkan server MCP ditulis sekali dan dipakai ulang di mana saja.
- Standardisasi: bentuk request function calling berbeda antar penyedia, sedangkan MCP mendefinisikan satu kontrak JSON-RPC terbuka.
- Cakupan: function calling hanya mengekspos tools, sedangkan MCP juga menstandarkan resources dan prompts.
Saling melengkapi, bukan pilih salah satu
Mitos yang umum adalah MCP menggantikan function calling. Tidak begitu. Ketika klien MCP terhubung ke server, ia mengambil daftar tool yang tersedia dan menyerahkan skemanya ke model sebagai tool function-calling biasa. Model tetap memakai function calling untuk memutuskan tool mana yang dipanggil.
Bedanya adalah siapa yang menulis dan menyediakan tool tersebut. Dengan function calling murni, Anda menulis sendiri skema dan handler-nya di dalam aplikasi. Dengan MCP, skema datang dari server yang bisa dikelola pihak lain, dan klien mengarahkan panggilan pilihan model ke server itu. Function calling adalah langkah pengambilan keputusan; MCP adalah lapisan distribusinya.
MCP tidak menghilangkan kebutuhan memikirkan desain tool. Server yang mengekspos puluhan tool yang kabur tetap membingungkan model, karena pemilihan tetap terjadi lewat function calling beserta batas token dan akurasinya.
Kapan memilih yang mana
Pilih berdasarkan pemakaian ulang dan jangkauan, bukan sekadar tren. Jika tool berada di dan hanya melayani satu aplikasi, function calling murni lebih sederhana dan minim bagian yang bergerak. Jika kemampuan yang sama harus tersedia bagi beberapa klien atau dibagikan ke orang lain, server MCP sepadan dengan usahanya.
- Pakai function calling murni untuk segelintir tool yang khusus satu aplikasi.
- Pakai MCP saat tool yang sama harus dipakai ulang di banyak aplikasi atau dibagikan secara publik.
- Ingat Anda tidak memilih satu selamanya: klien MCP tetap memakai function calling secara internal.
MCP vs function calling bukan pertandingan, melainkan tumpukan lapisan. Function calling adalah mekanisme di level model yang mengubah prompt menjadi panggilan tool terstruktur yang dijalankan kode Anda. MCP adalah protokol terbuka yang membuat tool itu bisa dipakai ulang lintas klien. Pakai function calling saat tool melayani satu aplikasi, dan MCP saat tool sebaiknya dibagikan.

