# MCP vs Function Calling: How AI Agents Use Tools

> Function calling dan MCP sama-sama membuat LLM memakai tool, tetapi di lapisan berbeda, dan biasanya keduanya dipakai bersama.

URL: https://www.matthewswong.com/id/blog/mcp-vs-function-calling/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2026-08-05
- Updated: 2026-08-05
- Category: AI

> **Key takeaway:** 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.

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

## Sumber dan bacaan lanjutan

- Model Context Protocol - Introduction
- OpenAI - Function calling guide
- Anthropic - Tool use overview
- Wikipedia - Model Context Protocol
- Model Context Protocol - Architecture overview

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

## Source links

- https://modelcontextprotocol.io/introduction
- https://developers.openai.com/api/docs/guides/function-calling
- https://platform.claude.com/docs/en/docs/build-with-claude/tool-use/overview
- https://en.wikipedia.org/wiki/Model_Context_Protocol
- https://modelcontextprotocol.io/docs/learn/architecture

## FAQ

### Apa perbedaan antara MCP dan function calling?

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.

### Apakah MCP menggantikan function calling?

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.

### Siapa yang menjalankan tool pada function calling?

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.

### Kapan sebaiknya memakai MCP alih-alih function calling murni?

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.

### Apa tiga primitive yang diekspos server MCP?

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.

---

- HTML version: https://www.matthewswong.com/id/blog/mcp-vs-function-calling/
- English: https://www.matthewswong.com/en/blog/mcp-vs-function-calling/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
