Apa itu Model Context Protocol (MCP)? Salah Satu Protokol dalam AI dalam Akses Data

Assalamu‘alaikum wr. wb.

Halo guys! Selain Vibe Coding, sekarang muncul lagi Istilah baru dalam Dunia AI, terutama bagi kalangan Developer yang sering menggunakan Cursor dan Claude Code, yaitu MCP. Sebenarnya, apa itu Model Context Protocol (MCP)? Mari kita bahas pada Postingan ini.

Apa itu Model Context Protocol (MCP)?

Sumber Artikel : Modelcontextprotocol.io, Cloudflare.comMedium.com (@nimritakoul01)Linkedin.com (Pulse - Piyush Ranjan)Ibm.comCodepolitan.com (Blog)Mayar.idAihub.id


Apakah Anda pernah mencoba membangun sistem multiagen (multiagent system), tetapi kesulitan dalam memastikan pertukaran informasi yang efektif antar setiap agen yang memiliki tugas khusus? Apakah Anda juga pernah mengalami error saat agen AI menggunakan berbagai alat bawaan maupun kustom, baik ketika mengeksekusi perintah maupun memproses hasil keluarannya? Atau bahkan, apakah kerumitan tersebut pernah membuatmu enggan untuk mengembangkan agen AI sendiri?

Masalah-masalah seperti ini dapat diatasi dengan menggunakan Model Context Protocol (MCP). MCP memungkinkan agen AI untuk memahami konteks sambil tetap mengikuti standar protokol yang digunakan untuk mengintegrasikan berbagai alat (tools).

Secara sederhana, agen AI adalah sistem atau program yang mampu melakukan tugas secara mandiri atas nama pengguna atau sistem lain. Agen ini menjalankan tugasnya dengan merancang Alur Kerja (Workflow) dan menggunakan alat-alat yang tersedia. Sementara itu, sistem multiagen terdiri dari beberapa agen AI yang bekerja bersama-sama secara terkoordinasi untuk menyelesaikan tugas tertentu bagi pengguna atau sistem lain.

Untuk mengatasi permasalahan ini, Anthropic merilis Model Context Protocol (MCP) sebagai proyek open-source yang memungkinkan asisten AI terhubung dengan sistem data secara lebih efisien dan aman.

Kalian juga bisa membayangkan MCP dalam aplikasi AI seperti port USB-C pada perangkat keras.

Perbandingan ini menggambarkan bagaimana USB-C memberikan fleksibilitas tinggi dalam menghubungkan berbagai perangkat keras — sama halnya dengan MCP yang menstandarkan cara berbagai alat dan sumber data menyediakan konteks bagi model AI agar bisa saling terhubung dengan lancar.


A. Pengertian Model Context Protocol (MCP)

Model Context Protocol (MCP) adalah sebuah standar untuk membuat informasi dapat diakses oleh model bahasa besar (Large Language Models / LLMs).

Mirip dengan cara kerja Application Programming Interface (API), MCP menyediakan cara yang terdokumentasi dan terstandarisasi bagi sebuah program komputer untuk mengintegrasikan layanan dari sumber eksternal.

Protokol ini mendukung konsep AI yang bersifat agen (agentic AI) — yaitu program cerdas yang dapat mengejar tujuan dan mengambil tindakan secara mandiri.

Secara sederhana, MCP memungkinkan program AI melampaui batas pelatihannya. Dengan MCP, AI dapat memasukkan sumber informasi baru ke dalam proses pengambilan keputusan maupun pembuatan konten, serta terhubung dengan alat-alat eksternal.

Bayangkan seorang asisten pribadi yang harus memesan meja untuk atasannya di sebuah restoran. Asisten tersebut akan menghubungi restoran, menanyakan waktu yang tersedia, dan memesan meja.

Nah, MCP berfungsi layaknya “nomor telepon” bagi agen AI, agar mereka dapat mengakses informasi yang dibutuhkan untuk menyelesaikan tugasnya.

MCP dikembangkan oleh perusahaan AI Anthropic, dan kemudian dibuka secara open source.

Sejak dirilis secara open source pada akhir Tahun 2024, MCP dengan cepat menjadi standar industri, yang memungkinkan penggunaan agen AI secara lebih luas di berbagai sistem dan aplikasi.

MCP adalah singkatan dari Model, Context, dan Protocol, yang masing-masing merepresentasikan elemen mendasar dalam desain sistem :

1. Model: Inti dari Pemahaman

Model berfungsi sebagai inti logika atau abstraksi dari sebuah aplikasi. Ia menentukan bagaimana data disusun, bagaimana keputusan diambil, dan bagaimana sistem menafsirkan informasi.

Dalam pengembangan perangkat lunak tradisional, Model sering diwujudkan melalui Object-Oriented Programming (OOP), skema basis data, atau model AI/ML.

Sebagai contoh, dalam aplikasi kecerdasan buatan, Model bisa berupa jaringan saraf (neural network) yang mampu memahami bahasa, memproses gambar, atau melakukan analisis prediktif.

Sementara dalam perangkat lunak bisnis, Model bisa berbentuk Entity-Relationship Model (ERM) yang mengatur bagaimana sistem berinteraksi dengan pelanggan.

2. Context: Lensa Dinamis

Context menyediakan lingkungan dinamis yang memungkinkan Model berfungsi secara optimal. Ia menentukan bagaimana Model berperilaku di bawah berbagai kondisi, mencakup faktor seperti interaksi pengguna, lingkungan sistem, serta keadaan internal sistem.

Misalnya, chatbot berbasis AI dapat memberikan respons yang berbeda tergantung pada konteks percakapan, atau model prediksi keuangan dapat menyesuaikan hasilnya berdasarkan perubahan tren ekonomi.

Tanpa konteks yang tepat, Model berisiko menghasilkan keluaran yang tidak relevan atau keliru.

3. Protocol: Jembatan Komunikasi

Protocol bertindak sebagai penghubung antara komponen-komponen dalam sistem. Ia menetapkan aturan komunikasi antara Model dan Context, memastikan bahwa setiap perubahan pada konteks dapat memengaruhi model secara tepat — dan sebaliknya.

Secara praktis, Protocol mengatur pertukaran data antar microservices, interaksi antar komponen AI, serta komunikasi API dalam aplikasi web.

Dengan adanya Protocol, sistem dapat berjalan secara konsisten, aman, dan efisien, terutama dalam lingkungan yang terdistribusi seperti arsitektur modern berbasis cloud.

B. Cara Kerja Model Context Protocol (MCP)

Arsitektur Model Context Protocol (MCP) 

MCP dibuat dengan desain yang sederhana namun tetap memiliki struktur yang kuat agar mudah diterapkan. Protokol ini berperan sebagai jembatan antara Sumber Data (Server) dan aplikasi kecerdasan buatan (klien). Secara umum, MCP terdiri dari dua komponen utama berikut :

  • MCP Server : Bertindak sebagai penyedia sumber data, menyimpan informasi yang dapat diakses oleh AI.
  • MCP Client (Aplikasi AI) : Menggunakan data yang tersedia di server untuk memahami konteks dan memberikan respons yang lebih akurat.

Melalui mekanisme tersebut, MCP menjamin bahwa kecerdasan buatan dapat mengakses data secara luas tanpa mengorbankan keamanan.

Untuk mendorong penerapan MCP secara lebih cepat dan mudah, kini tersedia 3 (Tiga) Komponen inti yang dapat dimanfaatkan oleh pengembang, yaitu :

1. Spesifikasi dan SDK Model Context Protocol

SDK (Software Development Kit) ini memungkinkan pengembang untuk dengan mudah mengintegrasikan MCP ke dalam aplikasi dan sistem mereka. Dengan spesifikasi yang jelas, implementasi MCP menjadi lebih cepat dan efisien.

2. Dukungan Server MCP Lokal di Aplikasi Claude Desktop

Aplikasi Claude Desktop kini dilengkapi dengan dukungan server MCP lokal. Hal ini memungkinkan pengguna untuk menjalankan MCP secara langsung di perangkat mereka tanpa perlu mengandalkan infrastruktur cloud yang kompleks.

3. Repositori Open-Source untuk Server MCP

Bagi komunitas pengembang yang ingin mengeksplorasi MCP lebih jauh, tersedia repositori open-source berisi berbagai implementasi server MCP. Dengan ini, pengembang dapat menyesuaikan MCP sesuai dengan kebutuhan sistem mereka. 


Struktur ini memastikan bahwa MCP dapat digunakan dengan efisien dan fleksibel dalam berbagai skenario, baik untuk kebutuhan individu maupun organisasi besar.

Untuk mempercepat implementasi, Anthropic juga menyediakan MCP server siap pakai bagi sistem enterprise populer seperti Google Drive, Slack, GitHub, Git, Postgres, dan Puppeteer. Dengan demikian, perusahaan tidak perlu membangun infrastruktur baru dari awal, tetapi cukup menggunakan protokol MCP yang sudah tersedia.

C. Alasan AI Membutuhkan MCP

Hingga kini, sebagian besar model kecerdasan buatan (AI) masih beroperasi dalam lingkungan yang terpisah, sehingga tidak dapat terhubung langsung dengan sumber data yang dibutuhkan. Kondisi ini menimbulkan sejumlah tantangan, di antaranya :

1. Silo Data

Banyak organisasi menyimpan informasi dalam sistem yang berdiri sendiri dan tidak saling terhubung. Akibatnya, AI sulit mengakses data tersebut secara menyeluruh, yang pada akhirnya membatasi kemampuan analisis dan pengambilan keputusan.

2. Integrasi yang Terpecah-pecah

Sebelum hadirnya MCP, pengembang perlu membuat konektor khusus untuk setiap sumber data yang ingin dihubungkan dengan AI. Proses ini tidak hanya memakan waktu tetapi juga menambah kompleksitas dalam pengelolaan sistem.

3. Penurunan Efisiensi

Tanpa akses langsung ke data, pengguna sering kali harus menyalin dan memasukkan informasi secara manual ke dalam sistem AI agar hasilnya lebih akurat. Cara ini jelas tidak efisien dan meningkatkan potensi kesalahan dalam pengolahan data.

D. Alasan Mengapa MCP Penting dalam AI dan Software Engineering (RPL)

Berikut ini adalah beberapa Alasan Mengapa MCP Penting dalam AI dan Software Engineering (RPL)

1. Meningkatkan Sistem AI yang Modular dan Dapat Diskalakan

Salah satu tantangan terbesar dalam pengembangan kecerdasan buatan (AI) adalah bagaimana merancang sistem yang fleksibel sekaligus dapat diskalakan.

Model Context Protocol (MCP) membantu mengurai arsitektur AI yang bersifat monolitik menjadi komponen-komponen modular.

Dengan memisahkan Model, Context, dan Protocol, para pengembang dapat:

  • Menukar model AI yang berbeda tanpa mengganggu keseluruhan sistem.
  • Menambahkan konteks baru secara dinamis (misalnya, menyesuaikan model NLP dengan bahasa atau industri yang berbeda).
  • Mendefinisikan protokol yang kuat untuk mengatur orkestrasi (pengelolaan) model AI.

2. Mengatasi Tantangan dalam Rekayasa Data (Data Engineering)

Bagi para insinyur data, MCP menyediakan kerangka kerja (framework) untuk menangani alur data (data pipeline) secara efisien.

  • Model: Menentukan bagaimana data disusun dan diubah.
  • Context: Menangani parameter runtime, pengaturan lingkungan, serta versi sistem.
  • Protocol: Mengatur pergerakan data antara lapisan penyimpanan, kerangka pemrosesan, dan alur kerja pembelajaran mesin (machine learning workflows).

3. Meningkatkan Pola Desain Perangkat Lunak

MCP sejalan dengan berbagai prinsip arsitektur perangkat lunak yang sudah dikenal luas, seperti:

  • Model-View-Controller (MVC): MCP memperluas logika MVC dengan memperkenalkan Context sebagai komponen eksplisit yang secara dinamis memengaruhi Model.
  • Arsitektur Berbasis Peristiwa (Event-Driven Architectures): MCP memungkinkan pembaruan konteks secara real-time berdasarkan aliran peristiwa, sehingga cocok untuk sistem seperti IoT, perdagangan finansial, dan mesin rekomendasi.
  • Komunikasi Mikroservis (Microservices Communication): Komponen Protocol dalam MCP menjamin komunikasi yang andal di aplikasi berbasis microservices.

4. Membangun Agen AI yang Adaptif

Dalam sistem multi-agent AI, MCP menyediakan pendekatan terstruktur untuk mengatur interaksi antar agen :

  • Model: Menentukan proses pengambilan keputusan agen.
  • Context: Melacak perubahan di lingkungan sekitar.
  • Protocol: Menetapkan komunikasi antara agen dengan agen lain maupun antara agen dengan manusia.

E. Manfaat dari MCP

Bayangkan sebuah AI yang benar-benar digunakan di dunia nyata—AI ini bisa otomatis membaca Email Anda untuk mengatur jadwal meeting dengan klien, mengirim update harga saham, dan memberikan ringkasan aktivitas Slack dalam satu jam terakhir melalui pesan. Setiap penyedia layanan memiliki cara kerja API yang berbeda-beda—mereka membutuhkan data yang berbeda untuk diproses dan menghasilkan format keluaran yang juga berbeda. Akibatnya, perubahan kecil pada salah satu alat saja bisa membuat seluruh sistem kerja AI ini berhenti berfungsi.

Para developer juga harus menanggung beban kerja besar untuk menyambungkan alat-alat tersebut secara manual, memperbaiki error, dan mengelola autentikasi seperti API key serta izin akses alat. Sering kali, satu alat bergantung pada hasil dari alat lain, dan ada banyak kondisi khusus yang bisa menyebabkan integrasi gagal.

Oleh karena itu, integrasi menggunakan MCP menjadi sangat penting sebagai lapisan penghubung antara LLM dan tool pengembangan. Di lapisan ini, MCP bertugas menerjemahkan hasil keluaran alat menjadi format yang dapat dimengerti model. Dengan pendekatan ini, integrasi alat dapat dilakukan secara terpusat tanpa harus berpindah antar CLI atau melakukan konfigurasi secara terpisah.

Setelah memahami konsep MCP, penting untuk disadari bahwa teknologi ini bukan sekadar tambahan fitur, melainkan sebuah terobosan besar dalam dunia pengembangan AI dan integrasi data.

1. Standarisasi yang Menghapus Sekat Data (Data Silos)

Sebelum hadirnya MCP, setiap perusahaan atau pengembang yang ingin menghubungkan sistem AI mereka dengan data internal harus membuat solusi khusus yang berbeda-beda. Pendekatan ini tidak efisien, memakan waktu, dan sulit untuk diintegrasikan antar tim. Misalnya, konektor untuk Jira di satu tim belum tentu kompatibel dengan konektor database di tim lain.

MCP hadir sebagai “bahasa universal” yang menyatukan semuanya. Kini, siapa pun bisa membuat Server MCP untuk sebuah alat atau layanan, dan server tersebut dapat langsung digunakan oleh siapa saja dalam komunitas yang mendukung protokol MCP. Hal ini membuka peluang kolaborasi dan inovasi dengan kecepatan yang jauh lebih tinggi.

2. Keamanan dan Privasi Sebagai Prioritas Utama

Isu keamanan menjadi fokus utama dalam desain MCP. Protokol ini menerapkan prinsip “zero-trust”, artinya model AI tidak memiliki akses langsung ke data pengguna. Semua komunikasi dengan database atau API dijalankan oleh Server MCP yang dikelola sepenuhnya oleh pengguna, baik di lingkungan lokal (localhost) maupun di server pribadi. Dengan demikian, data sensitif tetap aman, tanpa harus dikirim ke pihak ketiga. Pengguna memegang kendali penuh atas izin dan koneksi yang digunakan.

3. Komunitas Open Source yang Tumbuh Pesat

Karena bersifat open-source, MCP dengan cepat mendapatkan dukungan luas dari komunitas pengembang. Dalam waktu singkat, telah muncul ratusan Server MCP untuk berbagai aplikasi dan layanan populer. Pengembang kini tidak perlu membangun sistem dari awal — cukup mencari modul yang dibutuhkan di direktori, menginstalnya, dan langsung menggunakannya. Ekosistem ini terus berkembang secara eksponensial setiap harinya.

4. Lonjakan Produktivitas yang Signifikan

Manfaat paling nyata dari MCP adalah peningkatan efisiensi kerja. Protokol ini menghilangkan kebutuhan untuk berpindah-pindah konteks antar aplikasi (context switching) yang sering mengganggu alur kerja.

Anda tidak lagi perlu :

  • Beralih dari IDE ke browser untuk membuka Jira,
  • Menjalankan query SQL di tool terpisah seperti DBeaver,
  • Mengecek desain di Figma secara manual, atau
  • Membuka Slack untuk melihat notifikasi.

Semua hal tersebut kini bisa dilakukan langsung dari dalam IDE, dalam satu alur kerja terpadu. Hasilnya, waktu kerja menjadi lebih efisien, gangguan berkurang, dan produktivitas meningkat secara signifikan.

F. Fitur-fitur pada MCP Server

Sumber : Modelcontextprotocol.io

Server MCP berfungsi sebagai program yang memungkinkan aplikasi berbasis AI mengakses berbagai layanan melalui protokol standar.

Misalnya, server ini dapat digunakan untuk membuka dokumen melalui sistem berkas, menjalankan permintaan data di basis data, mengelola repositori kode di GitHub, berkomunikasi dengan tim melalui Slack, serta mengatur jadwal menggunakan server kalender.

1. Fitur Inti Server

Server menyediakan fungsionalitas melalui tiga blok bangunan :

Fitur
Penjelasan
Contoh
Siapa yang mengendalikannya
Alat
Fungsi yang dapat dipanggil secara aktif oleh LLM Anda, dan menentukan kapan akan menggunakannya berdasarkan permintaan pengguna. Alat dapat menulis ke database, memanggil API eksternal, memodifikasi berkas, atau memicu logika lainnya.
Cari penerbangan
Kirim pesan
Buat acara kalender
Model
Sumber Daya
Sumber data pasif yang menyediakan akses baca-saja ke informasi untuk konteks, seperti konten berkas, skema basis data, atau dokumentasi API.
Mengambil dokumen
Mengakses basis pengetahuan
Membaca kalender
Aplikasi
Petunjuk
Templat instruksi siap pakai yang memberi tahu model untuk bekerja dengan alat dan sumber daya tertentu.
Rencanakan liburan
Ringkas rapat saya
Susun draf email
Pengguna

Kita akan menggunakan sebuah skenario hipotetis untuk menunjukkan peran dari masing-masing fitur ini, serta bagaimana semuanya dapat bekerja bersama.

a. Alat (Tools)

Alat memungkinkan model AI untuk melakukan suatu tindakan. Setiap alat mendefinisikan operasi tertentu dengan input dan output yang terstruktur. Model akan meminta eksekusi alat berdasarkan konteks yang ada.

b. Cara Kerja Alat

Alat merupakan antarmuka yang didefinisikan oleh skema (schema-defined interface) dan dapat dijalankan oleh model bahasa besar (LLM). MCP menggunakan JSON Schema untuk proses validasi. Setiap alat melakukan satu operasi tunggal dengan input dan output yang terdefinisi dengan jelas.

Beberapa alat mungkin memerlukan persetujuan pengguna sebelum dijalankan, untuk memastikan bahwa pengguna tetap memiliki kendali atas tindakan yang dilakukan oleh model.

Operasi Protokol :

Metode
Tujuan
Pengembalian (Returns)
Alat/Daftar
Menemukan Alat/Tools yang tersedia
Array definisi Alat/Tool dengan skema
Alat/Panggilan
Mengeksekusi Alat/Tools tertentu
Hasil Eksekusi Alat/Tool

Contoh Definisi Alat :

{
  name: "searchFlights",
  description: "Search for available flights",
  inputSchema: {
    type: "object",
    properties: {
      origin: { type: "string", description: "Departure city" },
      destination: { type: "string", description: "Arrival city" },
      date: { type: "string", format: "date", description: "Travel date" }
    },
    required: ["origin", "destination", "date"]
  }
}

Contoh: Mendapatkan Konteks Perencanaan Perjalanan

Melanjutkan contoh perencanaan perjalanan, sumber daya menyediakan akses bagi aplikasi AI ke informasi yang relevan :

  • Data kalender (calendar://events/2024) - Memeriksa ketersediaan pengguna
  • Dokumen perjalanan (file:///Documents/Travel/passport.pdf) - Mengakses dokumen penting
  • Rencana perjalanan sebelumnya (trips://history/barcelona-2023) - Referensi perjalanan dan preferensi sebelumnya

Aplikasi AI mengambil sumber daya ini dan memutuskan cara memprosesnya, baik dengan memilih sebagian data menggunakan embedding atau pencarian kata kunci, atau meneruskan data mentah langsung ke model.

Dalam hal ini, aplikasi menyediakan data kalender, informasi cuaca, dan preferensi perjalanan ke model, yang memungkinkannya untuk memeriksa ketersediaan, mencari pola cuaca, dan merujuk preferensi perjalanan sebelumnya.

Contoh Template Sumber Daya (Resource Template Examples) :

{
  "uriTemplate": "weather://forecast/{city}/{date}",
  "name": "weather-forecast",
  "title": "Weather Forecast",
  "description": "Get weather forecast for any city and date",
  "mimeType": "application/json"
}

{
  "uriTemplate": "travel://flights/{origin}/{destination}",
  "name": "flight-search",
  "title": "Flight Search",
  "description": "Search available flights between cities",
  "mimeType": "application/json"
}

Template-template ini memungkinkan pencarian yang fleksibel. Untuk data cuaca, pengguna dapat mengakses prakiraan untuk kombinasi kota dan tanggal apa pun. Untuk penerbangan, mereka dapat mencari rute antara dua bandara mana pun. Ketika pengguna telah memasukkan "NYC" sebagai bandara asal dan mulai mengetik “Bar” sebagai bandara tujuan, sistem dapat menyarankan "Barcelona (BCN)" atau "Barbados (BGI)".

c. Penyelesaian Parameter (Parameter Completion)

Sumber daya dinamis mendukung penyelesaian parameter. Contohnya:

  • Mengetik “Par” sebagai input untuk weather://forecast/{city} dapat memunculkan saran seperti “Paris” atau “Park City”.
  • Mengetik “JFK” untuk flights://search/{airport} dapat memunculkan saran “JFK - John F. Kennedy International”.

Sistem membantu pengguna menemukan nilai yang valid tanpa harus mengetahui format yang tepat.

d. Model Interaksi Pengguna (User Interaction Model)

Sumber daya dikendalikan oleh aplikasi, memberi mereka fleksibilitas dalam cara mengambil, memproses, dan menampilkan konteks yang tersedia. Pola interaksi umum meliputi :

Tampilan pohon atau daftar untuk menjelajahi sumber daya seperti struktur folder.

  • Antarmuka pencarian dan penyaringan untuk menemukan sumber daya tertentu.
  • Penyertaan konteks otomatis atau saran cerdas berdasarkan heuristik atau pilihan AI.
  • Antarmuka pemilihan manual atau massal untuk menyertakan satu atau beberapa sumber daya.

Aplikasi bebas mengimplementasikan penemuan sumber daya melalui pola antarmuka apa pun yang sesuai dengan kebutuhan mereka. Protokol tidak menentukan pola antarmuka pengguna tertentu, sehingga memungkinkan penggunaan pemilih sumber daya dengan pratinjau, saran cerdas berdasarkan konteks percakapan saat ini, pemilihan massal untuk beberapa sumber daya, atau integrasi dengan penjelajah file dan data yang sudah ada.

e. Prompt

Prompt menyediakan templat yang dapat digunakan kembali. Prompt memungkinkan pembuat server MCP untuk menyediakan prompt berparameter untuk suatu domain, atau menunjukkan cara terbaik menggunakan server MCP.

f. Cara Kerja Prompt

Prompt adalah templat terstruktur yang menentukan input dan pola interaksi yang diharapkan. Prompt dikontrol oleh pengguna, membutuhkan pemanggilan eksplisit, alih-alih pemicu otomatis. Prompt dapat peka konteks, merujuk pada sumber daya dan alat yang tersedia untuk menciptakan alur kerja yang komprehensif. Serupa dengan sumber daya, prompt mendukung pelengkapan parameter untuk membantu pengguna menemukan nilai argumen yang valid.

Operasi Protokol :

Metode

Tujuan

Pengembalian

Prompt/Daftar

Temukan prompt yang tersedia

Array deskriptor prompt

Prompt/Dapatkan

Ambil detail prompt

Definisi prompt lengkap beserta argumennya

Contoh: Alur Kerja yang Disederhanakan

Prompt menyediakan templat terstruktur untuk tugas-tugas umum. Dalam konteks perencanaan perjalanan :

Prompt "Rencanakan liburan" :

{
  "uriTemplate": "weather://forecast/{city}/{date}",
  "name": "weather-forecast",
  "title": "Weather Forecast",
  "description": "Get weather forecast for any city and date",
  "mimeType": "application/json"
}

{
  "uriTemplate": "travel://flights/{origin}/{destination}",
  "name": "flight-search",
  "title": "Flight Search",
  "description": "Search available flights between cities",
  "mimeType": "application/json"
}

Alih-alih input bahasa alami yang tidak terstruktur, sistem prompt memungkinkan :

  • Pemilihan templat "Rencanakan liburan"
  • Input terstruktur: Barcelona, ​​7 hari, $3000, ["pantai", "arsitektur", "makanan"]
  • Eksekusi alur kerja yang konsisten berdasarkan templat

g. Model Interaksi Pengguna (User Interaction Model)

Prompt dikendalikan oleh pengguna dan memerlukan pemanggilan secara eksplisit. Protokol ini memberi kebebasan bagi pengembang untuk merancang antarmuka yang terasa alami dalam aplikasi mereka. Prinsip utamanya meliputi :

  • Kemudahan dalam menemukan prompt yang tersedia
  • Deskripsi yang jelas mengenai fungsi setiap prompt
  • Input argumen yang alami dengan validasi
  • Tampilan transparan dari template dasar prompt tersebut

Aplikasi biasanya menampilkan prompt melalui berbagai pola antarmuka pengguna (UI), seperti :

  • Perintah garis miring (slash commands), misalnya dengan mengetik “/” untuk melihat prompt yang tersedia seperti /plan-vacation
  • Palet perintah (command palettes) untuk akses yang dapat dicari
  • Tombol UI khusus untuk prompt yang sering digunakan
  • Menu konteks (context menus) yang menyarankan prompt relevan sesuai situasi

2. Menggabungkan Beberapa Server (Bringing Servers Together)

Kekuatan utama dari MCP muncul ketika beberapa server bekerja bersama, menggabungkan kemampuan khusus mereka melalui satu antarmuka terpadu.

Contoh: Perencanaan Perjalanan Multi-Server (Multi-Server Travel Planning)

Bayangkan sebuah aplikasi perencana perjalanan pribadi berbasis AI yang terhubung dengan tiga server berikut :

  • Server Perjalanan (Travel Server) – Menangani penerbangan, hotel, dan rencana perjalanan (itinerary).
  • Server Cuaca (Weather Server) – Menyediakan data iklim dan prakiraan cuaca.
  • Server Kalender/Email (Calendar/Email Server) – Mengelola jadwal dan komunikasi.

a. Alur Lengkap (The Complete Flow)

Ketiga server ini berkolaborasi dalam satu sistem terpadu: data dari server cuaca membantu menentukan waktu terbaik untuk bepergian, server perjalanan mengatur tiket dan akomodasi, sementara server kalender/email menyinkronkan jadwal dan mengirimkan konfirmasi secara otomatis — menciptakan pengalaman perencanaan perjalanan yang cerdas dan efisien.

    1.) Pengguna memanggil Prompt dengan Parameter :

{
  "prompt": "plan-vacation",
  "arguments": {
    "destination": "Barcelona",
    "departure_date": "2024-06-15",
    "return_date": "2024-06-22",
    "budget": 3000,
    "travelers": 2
  }
}

    2.) Pengguna memilih sumber daya untuk menyertakan :

  • calendar://my-calendar/Juni-2024 (dari Server Kalender)
  • travel://preferences/europe (dari Server Perjalanan)
  • travel://past-trips/Spanyol-2023 (dari Server Perjalanan)

    3.) AI memproses permintaan menggunakan alat :

AI pertama-tama membaca semua sumber daya yang dipilih untuk mengumpulkan konteks — seperti mengidentifikasi tanggal yang tersedia dari kalender, mempelajari maskapai dan jenis hotel favorit dari preferensi perjalanan, serta menemukan lokasi yang pernah dikunjungi dari perjalanan sebelumnya. Berdasarkan konteks tersebut, AI kemudian menjalankan serangkaian Tools berikut :

  • searchFlights() – Mencari penerbangan dari NYC ke Barcelona melalui maskapai yang tersedia.
  • checkWeather() – Mengambil prakiraan cuaca untuk tanggal perjalanan.

Selanjutnya, AI menggunakan informasi ini untuk membuat pemesanan dan melanjutkan ke langkah-langkah berikutnya, dengan tetap meminta persetujuan pengguna jika diperlukan :

  • bookHotel() – Mencari hotel sesuai dengan anggaran yang telah ditentukan.
  • createCalendarEvent() – Menambahkan jadwal perjalanan ke kalender pengguna.
  • sendEmail() – Mengirimkan email konfirmasi yang berisi detail perjalanan.

Hasilnya :

Melalui beberapa server MCP, pengguna meneliti dan memesan perjalanan ke Barcelona yang disesuaikan dengan jadwal mereka. Perintah "Rencanakan Liburan" memandu AI untuk menggabungkan Sumber Daya (ketersediaan kalender dan riwayat perjalanan) dengan Alat (mencari penerbangan, memesan hotel, memperbarui kalender) di berbagai server—mengumpulkan konteks dan menjalankan pemesanan. Tugas yang seharusnya memakan waktu berjam-jam dapat diselesaikan dalam hitungan menit menggunakan MCP.

G. Fitur-fitur pada MCP Client

Sumber : Modelcontextprotocol.io

Aplikasi induk (seperti Claude.ai atau IDE) membuat klien MCP untuk berkomunikasi dengan server MCP tertentu. Aplikasi induk ini mengatur pengalaman pengguna secara keseluruhan serta mengoordinasikan beberapa klien sekaligus. Setiap klien bertanggung jawab atas komunikasi langsung dengan satu server.

Dengan kata lain, aplikasi induk adalah tempat pengguna berinteraksi, sedangkan klien merupakan komponen teknis pada tingkat protokol yang memungkinkan terjadinya koneksi antara aplikasi dan server.

1. Fitur Inti Klien

Selain memanfaatkan konteks yang disediakan oleh server, klien dapat menyediakan beberapa fitur kepada server. Fitur-fitur klien ini memungkinkan pembuat server untuk membangun interaksi yang lebih kaya.

Fitur
Penjelasan
Contoh
Pengambilan Sampel (Sampling)
Pengambilan sampel memungkinkan server untuk meminta penyelesaian LLM melalui klien, sehingga memungkinkan alur kerja agen. Pendekatan ini memberi klien kendali penuh atas izin pengguna dan langkah-langkah keamanan.
Server untuk pemesanan perjalanan dapat mengirimkan daftar penerbangan ke LLM dan meminta LLM untuk memilih penerbangan terbaik bagi pengguna.
Roots
Roots memungkinkan klien menentukan direktori mana yang harus difokuskan oleh server, mengomunikasikan cakupan yang diinginkan melalui mekanisme koordinasi.
Server untuk pemesanan perjalanan dapat diberikan akses ke direktori tertentu, yang darinya server dapat membaca kalender pengguna.
Pengumpulan Informasi (Elicitation)
Pengumpulan informasi memungkinkan server untuk meminta informasi spesifik dari pengguna selama interaksi, menyediakan cara terstruktur bagi server untuk mengumpulkan informasi sesuai permintaan.
Server yang memesan perjalanan dapat menanyakan preferensi pengguna terkait kursi pesawat, jenis kamar, atau nomor kontak mereka untuk menyelesaikan pemesanan.

a. Elicitation (Permintaan Informasi)

Elicitation memungkinkan server untuk meminta informasi tertentu dari pengguna selama interaksi berlangsung, sehingga menciptakan alur kerja yang lebih dinamis dan responsif.

b. Gambaran Umum

Elicitation menyediakan cara yang terstruktur bagi server untuk mengumpulkan informasi yang dibutuhkan sesuai permintaan. Alih-alih mengharuskan semua informasi diberikan di awal atau gagal saat data tidak lengkap, server dapat menjeda prosesnya untuk meminta input spesifik dari pengguna.

Pendekatan ini menghasilkan interaksi yang lebih fleksibel, di mana server menyesuaikan diri dengan kebutuhan pengguna alih-alih mengikuti pola yang kaku.

Alur Elicitation :

(Teks ini mengisyaratkan akan ada diagram atau penjelasan lanjutan tentang urutan prosesnya.)

Alur Penggalian Konsep Klien MCP (Elicitation Flow of the MCP Client Concepts)

Contoh Komponen Penggalian :

{
  method: "elicitation/requestInput",
  params: {
    message: "Please confirm your Barcelona vacation booking details:",
    schema: {
      type: "object",
      properties: {
        confirmBooking: {
          type: "boolean",
          description: "Confirm the booking (Flights + Hotel = $3,000)"
        },
        seatPreference: {
          type: "string",
          enum: ["window", "aisle", "no preference"],
          description: "Preferred seat type for flights"
        },
        roomType: {
          type: "string",
          enum: ["sea view", "city view", "garden view"],
          description: "Preferred room type at hotel"
        },
        travelInsurance: {
          type: "boolean",
          default: false,
          description: "Add travel insurance ($150)"
        }
      },
      required: ["confirmBooking"]
    }
  }
}

Contoh: Persetujuan Pemesanan Liburan

Sebuah travel booking server menunjukkan kekuatan elicitation melalui proses konfirmasi pemesanan akhir. Ketika pengguna telah memilih paket liburan ideal mereka ke Barcelona, server perlu meminta persetujuan akhir dan melengkapi detail yang masih kurang sebelum melanjutkan.

Server meminta konfirmasi pemesanan dengan permintaan terstruktur yang mencakup ringkasan perjalanan (penerbangan ke Barcelona 15–22 Juni, hotel tepi pantai, total biaya $3.000) serta kolom untuk preferensi tambahan — seperti pemilihan kursi, jenis kamar, atau opsi asuransi perjalanan.

Selama proses pemesanan berlangsung, server juga meminta informasi kontak yang dibutuhkan untuk menyelesaikan reservasi. Misalnya, data penumpang untuk tiket pesawat, permintaan khusus untuk hotel, atau informasi kontak darurat.

c. Model Interaksi Pengguna

Interaksi elicitation dirancang agar jelas, kontekstual, dan tetap menghormati kendali pengguna :

  • Penyajian permintaan : Klien menampilkan permintaan elicitation dengan konteks yang jelas — mencantumkan server mana yang meminta, alasan permintaan tersebut, dan bagaimana data akan digunakan. Pesan permintaan menjelaskan tujuan, sementara schema memberikan struktur dan validasi.
  • Opsi respons : Pengguna dapat memberikan informasi yang diminta melalui kontrol antarmuka yang sesuai (seperti kolom teks, menu dropdown, atau kotak centang), menolak memberikan informasi dengan alasan opsional, atau membatalkan seluruh proses. Klien memvalidasi respons terhadap schema sebelum mengirimkannya kembali ke server.
  • Pertimbangan privasi : Elicitation tidak pernah meminta kata sandi atau kunci API. Klien akan memperingatkan jika ada permintaan mencurigakan dan memberi kesempatan kepada pengguna untuk meninjau data sebelum dikirim.

d. Akar (Roots)

Akar menentukan batas sistem file untuk operasi server, memungkinkan klien menentukan direktori mana yang harus menjadi fokus server.

e. Gambaran Umum

Roots berfungsi sebagai mekanisme bagi klien untuk menginformasikan batas akses sistem file kepada server.

Mereka terdiri dari file URI yang menunjukkan direktori tempat server dapat beroperasi, membantu server memahami cakupan berkas dan folder yang tersedia.

Meskipun roots mengkomunikasikan batasan yang diinginkan, fitur ini tidak menegakkan pembatasan keamanan secara langsung. Keamanan yang sebenarnya harus ditegakkan di tingkat sistem operasi — melalui izin berkas (file permissions) dan/atau proses sandboxing (pembatasan ruang kerja program).

Struktur Akar :

{
  "uri": "file:///Users/agent/travel-planning",
  "name": "Travel Planning Workspace"
}

Root merupakan jalur khusus sistem berkas dan selalu menggunakan skema URI file://. Root membantu server memahami batasan proyek, organisasi ruang kerja, dan direktori yang dapat diakses. Daftar root dapat diperbarui secara dinamis saat pengguna bekerja dengan berbagai proyek atau folder, dan server akan menerima notifikasi melalui roots/list_changed ketika batasan berubah.

Contoh: Ruang Kerja Perencanaan Perjalanan

Seorang agen perjalanan yang menangani beberapa perjalanan klien mendapatkan manfaat dari root untuk mengatur akses sistem berkas. Pertimbangkan ruang kerja dengan direktori berbeda untuk berbagai aspek perencanaan perjalanan.

Klien menyediakan root sistem berkas ke server perencanaan perjalanan :

  • file:///Users/agent/travel-planning - Ruang kerja utama yang berisi semua berkas perjalanan
  • file:///Users/agent/travel-templates - Templat dan sumber daya rencana perjalanan yang dapat digunakan kembali
  • file:///Users/agent/client-documents - Paspor dan dokumen perjalanan klien

Ketika agen membuat itinerary (rencana perjalanan) ke Barcelona, server yang berfungsi dengan baik akan menghormati batasan yang telah ditetapkan — dengan cara mengakses templat, menyimpan itinerary baru, dan merujuk dokumen klien hanya di dalam direktori yang telah ditentukan sebagai roots.

Server biasanya mengakses berkas di dalam roots dengan :

  • menggunakan jalur relatif dari direktori akar (root directories), atau
  • menggunakan alat pencarian berkas (file search tools) yang juga mematuhi batasan root tersebut.

Apabila agen membuka folder arsip seperti :

  • file:///Users/agent/archive/2023-trips, maka klien akan memperbarui daftar roots melalui perintah roots/list_changed.
  • Untuk implementasi lengkap mengenai server yang mematuhi batasan roots, dapat dilihat pada filesystem server yang terdapat di official servers repository.

f. Filosofi Desain

Root berfungsi sebagai mekanisme koordinasi antara klien dan server, bukan sebagai batasan keamanan. Spesifikasi tersebut mensyaratkan bahwa server "HARUS mematuhi batasan root," dan bukan "HARUS menerapkannya", karena server menjalankan kode yang tidak dapat dikontrol oleh klien.

Root berfungsi paling baik ketika server tepercaya atau terverifikasi, pengguna memahami sifat penasihatnya, dan tujuannya adalah mencegah kecelakaan, alih-alih menghentikan perilaku berbahaya. Root unggul dalam penentuan cakupan konteks (memberi tahu server di mana harus fokus), pencegahan kecelakaan (membantu server yang berperilaku baik tetap berada dalam batasan), dan pengaturan alur kerja (seperti mengelola batasan proyek secara otomatis).

g. Model Interaksi Pengguna

Roots biasanya dikelola secara otomatis oleh aplikasi host berdasarkan tindakan pengguna, meskipun beberapa aplikasi juga dapat menyediakan opsi pengaturan manual untuk roots:

Deteksi root otomatis : Ketika pengguna membuka sebuah folder, klien secara otomatis menampilkannya sebagai root.

Misalnya, saat pengguna membuka workspace perjalanan, klien akan menetapkan direktori tersebut sebagai root agar server memahami itinerary dan dokumen mana yang relevan untuk pekerjaan saat ini.

Konfigurasi root manual : Pengguna tingkat lanjut dapat menentukan roots melalui pengaturan konfigurasi.

Contohnya, menambahkan direktori /travel-templates untuk sumber daya yang dapat digunakan kembali, sambil mengecualikan direktori yang berisi catatan keuangan.

h. Sampling

Sampling memungkinkan server meminta hasil penyelesaian bahasa dari model AI melalui klien, sehingga mendukung perilaku agen (agentic behaviors) tanpa mengorbankan keamanan dan kendali pengguna.

Ikhtisar :

Sampling memungkinkan server melakukan tugas yang bergantung pada AI tanpa harus terhubung langsung atau membayar layanan model AI. Sebagai gantinya, server dapat meminta klien — yang sudah memiliki akses ke model AI — untuk menangani tugas tersebut atas nama mereka.

Pendekatan ini memberikan kendali penuh kepada klien terkait izin pengguna dan langkah-langkah keamanan. Karena permintaan sampling terjadi dalam konteks operasi lain (misalnya saat sebuah alat menganalisis data) dan diproses sebagai panggilan model terpisah, metode ini menjaga pemisahan konteks yang jelas, sekaligus memungkinkan penggunaan jendela konteks secara lebih efisien.

Aliran Pengambilan Sampel (Sampling Flow) :

Aliran Pengambilan Sampel Konsep Klien MCP (Sampling Flow of the MCP Client Concepts)

Alur ini memastikan keamanan melalui beberapa titik pemeriksaan yang melibatkan manusia. Pengguna meninjau dan dapat mengubah permintaan awal dan respons yang dihasilkan sebelum kembali ke server.

Contoh Parameter Permintaan :

{
  messages: [
    {
      role: "user",
      content: "Analyze these flight options and recommend the best choice:\n" +
               "[47 flights with prices, times, airlines, and layovers]\n" +
               "User preferences: morning departure, max 1 layover"
    }
  ],
  modelPreferences: {
    hints: [{
      name: "claude-3-5-sonnet"  // Suggested model
    }],
    costPriority: 0.3,      // Less concerned about API cost
    speedPriority: 0.2,     // Can wait for thorough analysis
    intelligencePriority: 0.9  // Need complex trade-off evaluation
  },
  systemPrompt: "You are a travel expert helping users find the best flights based on their preferences",
  maxTokens: 1500
}

Contoh: Alat Analisis Penerbangan

Bayangkan sebuah server pemesanan perjalanan dengan alat bernama findBestFlight yang menggunakan pengambilan sampel untuk menganalisis penerbangan yang tersedia dan merekomendasikan pilihan terbaik. Ketika pengguna bertanya, "Pesankan saya penerbangan terbaik ke Barcelona bulan depan," alat tersebut membutuhkan bantuan AI untuk mengevaluasi berbagai pertimbangan yang kompleks.

Alat tersebut akan meminta API maskapai dan mengumpulkan 47 pilihan penerbangan. Kemudian, alat tersebut meminta bantuan AI untuk menganalisis pilihan-pilihan ini: "Analisis pilihan penerbangan ini dan rekomendasikan pilihan terbaik: [47 penerbangan dengan harga, waktu, maskapai, dan persinggahan] Preferensi pengguna: keberangkatan pagi, maksimal 1 persinggahan."

Klien memulai permintaan pengambilan sampel, yang memungkinkan AI untuk mengevaluasi berbagai pertimbangan—seperti penerbangan red-eye yang lebih murah versus keberangkatan pagi yang nyaman. Alat ini menggunakan analisis ini untuk menyajikan tiga rekomendasi teratas.

i. Model Interaksi Pengguna

Meskipun tidak wajib, sampling dirancang agar tetap memungkinkan pengawasan manusia di dalam prosesnya (human-in-the-loop control).

Pengguna dapat mempertahankan kendali melalui beberapa mekanisme berikut :

  • Kontrol Persetujuan : Permintaan pengambilan sampel mungkin memerlukan persetujuan eksplisit dari pengguna. Klien dapat menunjukkan apa yang ingin dianalisis server dan alasannya. Pengguna dapat menyetujui, menolak, atau mengubah permintaan.
  • Fitur Transparansi : Klien dapat menampilkan prompt, pilihan model, dan batas token yang tepat, yang memungkinkan pengguna untuk meninjau respons AI sebelum kembali ke server.
  • Opsi konfigurasi: Pengguna dapat mengatur preferensi model, mengonfigurasi persetujuan otomatis untuk operasi tepercaya, atau mewajibkan persetujuan untuk semuanya. Klien dapat menyediakan opsi untuk menyunting informasi sensitif.
  • Pertimbangan keamanan : Baik klien maupun server harus menangani data sensitif dengan tepat selama pengambilan sampel. Klien harus menerapkan pembatasan laju dan memvalidasi semua konten pesan. Desain human-in-the-loop memastikan bahwa interaksi AI yang diinisiasi server tidak dapat membahayakan keamanan atau mengakses data sensitif tanpa persetujuan eksplisit dari pengguna.

H. Contoh Aplikasi MCP di Dunia Nyata

Contoh Aplikasi Dunia Nyata MCP

Berikut ini adalah Beberapa Contoh Aplikasi MCP di Dunia Nyata :

1. Pipeline ETL Bertenaga AI

Dalam sistem ETL (Extract, Transform, Load) modern, MCP memastikan kemampuan adaptasi yang dinamis :

  • Model : Logika transformasi data (misalnya, pembersihan data yang didukung machine learning).
  • Context : Konfigurasi metadata (misalnya, versi skema, data lineage).
  • Protocol : Standar transmisi data (misalnya, Kafka, Apache Flink).

2. Chatbot AI yang Kontekstual (Context-Aware)

Banyak asisten berbasis AI seperti ChatGPT, Claude, atau Perplexity AI menggunakan prinsip yang serupa dengan MCP :

  • Model : Large Language Model (LLM).
  • Context : Riwayat pengguna, nada bicara, dan niat percakapan.
  • Protocol : Interaksi API dan respons antarmuka pengguna.

3. Keamanan Siber dan Deteksi Penipuan

Lembaga keuangan menggunakan arsitektur mirip MCP untuk mendeteksi aktivitas penipuan :

  • Model : Algoritma deteksi penipuan berbasis machine learning.
  • Context : Pola transaksi secara waktu nyata (real-time transaction patterns).
  • Protocol : Panggilan API yang aman dan sistem peringatan otomatis.

4. Komputasi Cloud-Native dan Edge Computing

MCP berperan penting dalam lingkungan cloud-native, di mana beban kerja berpindah antara cloud dan Perangkat Edge :

  • Model : Model inferensi AI untuk edge computing.
  • Context : Kondisi jaringan dan kemampuan perangkat.
  • Protocol : Pertukaran data yang aman dan berlatensi rendah.



Itulah Pembahasan mengenai Model Context Protocol (MCP). Semoga Bermanfaat bagi kita semua.

Terima Kasih 😄😘👌👍 :)

Wassalamu‘alaikum wr. wb.

Post a Comment

Previous Post Next Post