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.