MCP vs Function Calling: How AI Agents Use Tools

Function calling adalah fitur dari API model: Anda mengirim skema tool JSON dan model mengembalikan panggilan terstruktur yang dijalankan kode Anda. MCP adalah protokol terbuka yang menaruh tool di balik server yang bisa dipakai ulang oleh klien mana pun yang kompatibel. Keduanya bekerja di lapisan berbeda dan saling melengkapi, bukan bersaing.
Tidak. Ketika klien MCP terhubung ke server, ia menyerahkan skema tool yang ditemukan ke model sebagai tool function-calling biasa. Model tetap memakai function calling untuk memilih tool mana yang dipanggil, jadi MCP dibangun di atasnya, bukan menggantikannya.
Aplikasi Anda. Model hanya mengembalikan nama tool dan argumennya; model tidak pernah menjalankan kode sendiri. Handler Anda yang menjalankan aksi sebenarnya, seperti kueri database atau request API, lalu mengembalikan hasilnya agar model bisa melanjutkan jawaban.
Pakai MCP saat tool yang sama perlu dipakai ulang di beberapa aplikasi atau dibagikan ke orang lain. Jika tool berada di dalam dan hanya melayani satu aplikasi, function calling murni lebih sederhana. MCP unggul sebagai lapisan distribusi, bukan untuk integrasi satu aplikasi.
Server MCP bisa mengekspos tools, resources, dan prompts. Tools adalah aksi yang bisa dipanggil model, resources adalah data konteks seperti file atau record, dan prompts adalah template interaksi yang bisa dipakai ulang. Klien menemukan primitive ini sebelum memakainya.

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, 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.
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.
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.
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.
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.
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.