Di episode #26 kita sudah membedah loop perceive-reason-act yang membuat agent berbeda dari chatbot biasa, dan di episode #27 kita lihat bagaimana model memanggil fungsi kita lewat function calling. Nah, hari ini saya dapat belajar satu konsep yang menjawab keluhan paling menyebalkan dari pola itu: setiap kali ganti tools atau ganti model, skema function calling saya harus ditulis ulang. Ternyata ada standar yang sedang menyelesaikan masalah ini namanya MCP — Model Context Protocol. Ini yang saya catat.
MCP itu apa, sederhananya?
MCP adalah protocol open-source yang diperkenalkan Anthropic pada November 2024 untuk menghubungkan aplikasi LLM dengan sistem eksternal — file, database, API, browser, apa pun. Kalau function calling di episode #27 itu seperti menulis kabel khusus per perangkat, MCP itu seperti USB-C: satu konektor, banyak perangkat. Tools tidak lagi ditulis khusus untuk satu model atau satu framework — cukup sekali dibungkus sebagai MCP server, lalu bisa dipakai oleh host mana pun yang mendukung MCP.
Ini berarti bagi saya sebagai programmer: integrasi tools yang dulu berupa kode bespoke per aplikasi sekarang jadi komponen yang bisa dipasang-lepas. Analogi paling dekat yang saya punya adalah REST API — dulu tiap layanan punya format RPC sendiri-sendiri, lalu HTTP + JSON menyatukan semuanya. MCP sedang bermain peran yang sama untuk tools AI.
Arsitektur: host, client, server
Secara arsitektur MCP punya tiga peran. Host adalah aplikasi tempat agent berjalan (Claude Desktop, IDE berbasis AI, atau aplikasi kita sendiri). Di dalam host ada client, yang menjaga satu koneksi ke satu server. Dan server adalah program yang menyediakan konteks dan kemampuan — misalnya server filesystem, server PostgreSQL, atau server GitHub.
Yang menarik bagi saya: server MCP tidak “menghidupkan” model. Dia cuma mengekspos kemampuan. Modelnya tetap di tempat lain, host yang menyalurkan tool call ke server lalu mengembalikan hasilnya. Jadi MCP murni lapisan konektivitas, bukan framework agent — ini yang membedakannya dari LangChain yang kita bahas di episode berikutnya.
Tiga primitives: tools, resources, prompts
MCP mendefinisikan tiga kemampuan utama yang bisa diekspos server:
- Tools — fungsi yang dipanggil model (setara function calling). Ini yang paling sering dipakai.
- Resources — data yang bisa dibaca model, mirip file URI. Bedanya dengan tools: resources untuk konteks pasif (isi file, baris database), bukan aksi.
- Prompts — template prompt yang disediakan server untuk dipakai user.
Di lapangan, yang saya lihat hampir selalu tools — dua lainnya jarang kepakai di aplikasi harian, tapi penting dipahami supaya tidak menyusun server dengan semuanya dibungkus jadi tool.
Transport: stdio untuk lokal, HTTP untuk jarak jauh
Server MCP lokal umumnya dijalankan sebagai subprocess dan dialek lewat stdio — host membuka proses child, kirim JSON-RPC, baca balasan. Untuk server remote, MCP memakai Streamable HTTP (transport berbasis HTTP yang mendukung streaming, hasil dari revisi spesifikasi Maret 2025, menggantikan transport SSE lama). Kontrol aksesnya memakai OAuth.
Contoh kecil definisi tool di server MCP (bentuk tools/list yang dikirim server ke client):
{
"tools": [
{
"name": "get_weather",
"description": "Cek cuaca kota saat ini",
"inputSchema": {
"type": "object",
"properties": {
"kota": { "type": "string" }
},
"required": ["kota"]
}
}
]
}Lihat: inputSchema-nya JSON Schema yang sama persis dengan yang kita pelajari untuk function calling di episode #27. Memang sengaja — MCP membungkus konsep tool call yang sudah ada dalam protokol transport yang seragam.
Ekosistem 2026: registry, SDK, dan revisi besar
Adopsinya berjalan cepat. Ada SDK resmi (Python, TypeScript, dan lainnya), lalu pada September 2025 diluncurkan MCP Registry — katalog resmi server MCP di registry.modelcontextprotocol.io, semacam “app store” untuk mencari server tepercaya. Host besar seperti Claude Desktop, dan framework dari OpenAI sampai Google, sudah mendukung MCP.
Yang terbaru dan paling saya catat: revisi spesifikasi 2026-07-28 — disebut proyek MCP sebagai revisi terbesar sejak peluncuran. Intinya protocol core dibuat stateless, ditambah Multi Round-Trip Requests, header-based routing, hasil list yang bisa di-cache, penguatan authorization, dan framework extensions formal. Bagi saya ini tanda protocol ini serius hidup jangka panjang, bukan eksperimen yang bisa mati tahun depan.
Kapan pakai MCP, kapan cukup function calling biasa?
Keputusan yang saya simpulkan sendiri: kalau tools-nya cuma dipakai satu aplikasi dan sekali pakai, function calling biasa sudah cukup — tambah satu lapisan protocol justru overkill. Tapi kalau (1) tools yang sama mau dipakai banyak agent/host, (2) kita butuh data dari banyak sumber pihak ketiga, atau (3) kita mau users memasang tools sendiri tanpa menyentuh kode kita — di situ MCP berkelas.
Satu catatan keamanan yang tidak boleh saya lupakan: server MCP dari pihak ketiga membawa prompt injection lewat konten yang dikembalikannya. Sumber konteks external harus diperlakukan sebagai tidak tepercaya — ini akan kita dalami lagi di episode AI safety praktis nanti.
Bagi saya, kesimpulan besarnya: function calling adalah mekanisme, MCP adalah ekosistemnya. Belajar function calling tanpa tahu MCP itu seperti bisa pakai REST tapi tidak tahu ada Docker Hub.
Sumber
- modelcontextprotocol.io — dokumentasi resmi MCP
- Anthropic: Introducing the Model Context Protocol (Nov 2024)
- Blog MCP: The 2026-07-28 Specification (28 Jul 2026)
- Blog MCP: Introducing the MCP Registry (8 Sep 2025)
- GitHub: modelcontextprotocol/servers — server resmi rujukan
Komentar Terbaru