Lompat ke konten utama
←

Membangun Aplikasi LLM dengan Python

Pelajaran 15 dari 19

Agen, alat, dan MCP

MCP: host, klien, server, dan pesan JSON-RPC

Setelah pelajaran ini kamu bisa membedakan peran host, klien, dan server MCP serta tiga primitifnya, lalu menyusun dan menjawab pesan JSON-RPC tools/call.

±14 menitDiperiksa 23 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Model Context Protocol (MCP) adalah protokol terbuka yang menstandarkan cara aplikasi memberi konteks dan alat kepada model. Pesertanya tiga: host, yaitu aplikasi AI yang dipakai pengguna; klien, komponen di dalam host yang menjaga koneksi ke satu server; dan server, program yang menyediakan konteks. Host membuat satu klien untuk setiap server yang dihubunginya.

Server menawarkan tiga primitif. Tools adalah fungsi yang dikendalikan model; resources adalah data konteks yang dikendalikan aplikasi dan ditandai URI; prompts adalah templat yang dipilih pengguna, misalnya lewat perintah garis miring. Klien menemukan alat dengan tools/list dan memanggilnya dengan tools/call.

Semua pesan mengikuti JSON-RPC 2.0. Permintaan memuat jsonrpc "2.0", id berupa string atau bilangan bulat yang tidak boleh null, method, dan params. Respons membawa id yang sama dan berisi result atau error dengan kode bilangan bulat. Notifikasi tidak punya id dan tidak dijawab. Galat protokol, misalnya alat yang tidak dikenal, dikirim sebagai error JSON-RPC; galat eksekusi alat dikirim di dalam result dengan isError true supaya model bisa memperbaiki diri.

{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}
{"jsonrpc": "2.0", "id": 1, "result": {"resultType": "complete", "tools": [{"name": "cek_jadwal", "inputSchema": {"type": "object"}}]}}
{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "cek_jadwal", "arguments": {"dokter": "drg. Wulan"}}}
{"jsonrpc": "2.0", "id": 2, "result": {"resultType": "complete", "content": [{"type": "text", "text": "Senin dan Kamis"}], "isError": false}}
{"jsonrpc": "2.0", "method": "notifications/cancelled", "params": {"requestId": 3}}

Pesan yang sama berjalan di dua transport: stdio untuk server lokal yang dijalankan klien sebagai subproses, dan Streamable HTTP untuk server jarak jauh. Revisi spesifikasi 2026-07-28 menghapus jabat tangan initialize sehingga setiap permintaan berdiri sendiri. Contoh di kelas ini, seperti contoh di halaman spesifikasinya, menghilangkan kolom _meta.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Di sebuah aplikasi, pengguna memilih berkas laporan dari panel samping, lalu aplikasi melampirkan isinya ke konteks model. Server MCP menyediakan berkas itu lewat URI. Primitif MCP apa yang dipakai?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 3 lagi