Mengenal MCP (Model Context Protocol): protokol standar yang dibuat Anthropic untuk menghubungkan AI dengan tools dan data sumber secara terstruktur dan aman.
Daftar Isi
- TL;DR (Ringkasan Cepat)
- Pengertian Model Context Protocol PHP untuk AI Agent
- Mengapa Belajar ai-agent-php Membutuhkan Standar MCP?
- Cara Kerja MCP pada AI Agent Berbasis PHP
- Contoh Kode PHP Sederhana Protokol MCP (Client & Server)
- Arsitektur & Komponen Utama Model Context Protocol PHP
- Kelebihan Model Context Protocol PHP untuk AI Agent
- Tabel Perbandingan: MCP vs Traditional REST API vs Function Calling
- Mekanisme Otorisasi & Keamanan Data pada Protokol MCP
- Studi Kasus Integrasi MCP di Framework Laravel / Symfony & Penanganan Error
- Pertanyaan Sering Diajukan (FAQ) MCP & AI Agent
- Apa fungsi utama Model Context Protocol (MCP) pada AI Agent?
- Apa perbedaan MCP dengan Function Calling API biasa?
- Bagaimana arsitektur 3 komponen utama dalam MCP?
Terakhir diperbarui:
Model Context Protocol (MCP) adalah protokol standar terbuka (open protocol) yang dikembangkan oleh Anthropic untuk menstandarisasi koneksi aman antara aplikasi AI Agent (Host) dengan berbagai sumber data, tools, dan API eksternal (Server) secara modular tanpa ketergantungan pada satu vendor AI tertentu.
TL;DR (Ringkasan Cepat)
- MCP adalah protokol standar terbuka (open protocol) yang dibuat Anthropic untuk menghubungkan AI dengan sumber data dan tools secara terstruktur.
- Analogi: MCP adalah "USB standard" bagi AI — satu protokol untuk semua tools.
- Arsitektur: MCP Host → MCP Client → MCP Server.
- Keunggulan: Standar terbuka, aman, mudah diperluas, dan tidak terikat vendor.
Repositori Kode Tutorial MCP PHP
Contoh kode lengkap MCP Server & Client berbasis PHP 8.3 dapat Anda clone dari GitHub resmi.
Pengertian Model Context Protocol PHP untuk AI Agent
Model Context Protocol (MCP) adalah protokol komunikasi standar terbuka yang pertama kali diperkenalkan oleh Anthropic (modelcontextprotocol.io) pada November 2024. MCP dirancang untuk menstandarisasi cara AI model berinteraksi dengan sumber data, tools, dan layanan eksternal.
Sebelum MCP ada, setiap pengembang yang ingin menghubungkan AI dengan database, API, atau tools lainnya harus membangun integrasi khusus yang berbeda-beda untuk setiap kombinasi model AI dan tool. Ini sangat tidak efisien dan sulit dipelihara.
Mengapa Belajar ai-agent-php Membutuhkan Standar MCP?
MCP lahir untuk menyelesaikan masalah utama dalam pengembangan AI Agent:
- Fragmentasi integrasi: Setiap AI model memiliki cara berbeda untuk memanggil tools — tidak ada standar universal.
- Duplikasi kerja: Pengembang harus membuat konnektor yang sama berulang kali untuk setiap kombinasi model + tool.
- Keamanan yang tidak terjamin: Tanpa standar, implementasi keamanan menjadi tidak konsisten.
- Sulit diperluas: Menambahkan tool baru berarti menulis kode integrasi baru dari nol.
MCP adalah seperti standar USB untuk dunia AI — satu protokol yang memungkinkan setiap model AI terhubung dengan setiap tool tanpa integrasi kustom yang rumit.
Cara Kerja MCP pada AI Agent Berbasis PHP
MCP bekerja dengan pola komunikasi Client-Server yang terstruktur:
- MCP Host (aplikasi AI Anda) memulai sesi dengan MCP Server.
- Host meminta daftar tools yang tersedia dari Server menggunakan protokol MCP.
- AI Model memutuskan tool mana yang perlu dipanggil berdasarkan permintaan user.
- MCP Client mengirim permintaan pemanggilan tool ke MCP Server.
- MCP Server mengeksekusi tool dan mengembalikan hasilnya.
- AI Model menggunakan hasil tersebut untuk merumuskan respons akhir.
Contoh Kode PHP Sederhana Protokol MCP (Client & Server)
Protokol MCP menggunakan format pesan JSON-RPC 2.0 standar. Berikut adalah contoh sederhana implementasi MCP Server dan MCP Client menggunakan PHP 8.3:
<?php
// 1. SIMULASI MCP SERVER (Penyedia Tools via JSON-RPC 2.0)
class McpServer
{
private array $tools = [
"get_system_status" => [
"description" => "Mengecek status server dan beban CPU",
"handler" => null
]
];
public function handleRequest(string $jsonRpcInput): string
{
$req = json_decode($jsonRpcInput, true);
$method = $req["method"] ?? "";
$id = $req["id"] ?? 1;
// MCP Method: tools/list
if ($method === "tools/list") {
return json_encode([
"jsonrpc" => "2.0",
"id" => $id,
"result" => [
"tools" => [
["name" => "get_system_status", "description" => "Mengecek status server dan beban CPU"]
]
]
]);
}
// MCP Method: tools/call
if ($method === "tools/call") {
$toolName = $req["params"]["name"] ?? "";
if ($toolName === "get_system_status") {
$output = ["status" => "online", "cpu_load" => "12%", "memory" => "4.2GB / 16GB"];
return json_encode([
"jsonrpc" => "2.0",
"id" => $id,
"result" => ["content" => [["type" => "text", "text" => json_encode($output)]]]
]);
}
}
return json_encode(["jsonrpc" => "2.0", "id" => $id, "error" => ["code" => -32601, "message" => "Method not found"]]);
}
}
// 2. SIMULASI MCP CLIENT (AI Agent Host di PHP)
$server = new McpServer();
// Langkah A: Client meminta daftar tools dari MCP Server
$listRequest = json_encode(["jsonrpc" => "2.0", "id" => 1, "method" => "tools/list"]);
$listResponse = $server->handleRequest($listRequest);
echo "Daftar Tools dari MCP Server:\n" . $listResponse . "\n\n";
// Langkah B: Client memanggil tool tertentu
$callRequest = json_encode([
"jsonrpc" => "2.0",
"id" => 2,
"method" => "tools/call",
"params" => ["name" => "get_system_status"]
]);
$callResponse = $server->handleRequest($callRequest);
echo "Hasil Eksekusi Tool MCP:\n" . $callResponse . "\n";
Arsitektur & Komponen Utama Model Context Protocol PHP
Diagram 2.1: Visualisasi arsitektur alur komunikasi Model Context Protocol (MCP) antara Host, Client, dan Server.
| Komponen | Peran | Contoh |
|---|---|---|
| MCP Host | Aplikasi yang menjalankan AI (otak) | Aplikasi PHP Anda, Claude Desktop |
| MCP Client | Penghubung antara Host dan Server | Library PHP MCP yang kita instal |
| MCP Server | Penyedia tools dan sumber data | Server MySQL, Filesystem, GitHub API |
Kelebihan Model Context Protocol PHP untuk AI Agent
Mengapa memilih MCP alih-alih Function Calling API biasa? Berikut perbandingannya:
- Standar terbuka: Tidak terikat pada satu vendor AI. Tool MCP yang Anda buat bisa digunakan dengan Claude, GPT, Gemini, dsb.
- Mudah diperluas: Tambah tool baru hanya dengan mendaftarkannya ke MCP Server tanpa mengubah kode AI core.
- Keamanan terstruktur: MCP memiliki mekanisme authorization dan permission yang terstandardisasi.
- Ekosistem yang berkembang: Komunitas MCP terus membuat MCP Server siap pakai untuk berbagai layanan populer.
- Debugging lebih mudah: Komunikasi terstruktur memudahkan logging dan troubleshooting.
Tabel Perbandingan: MCP vs Traditional REST API vs Function Calling
Berikut adalah tabel komparasi teknis untuk memahami posisi Model Context Protocol (MCP) dalam lanskap arsitektur AI modern:
| Aspek Komparasi | MCP (Model Context Protocol) | Function Calling (OpenAI/Anthropic) | Traditional REST API |
|---|---|---|---|
| Standar Protokol | Open Standard (JSON-RPC 2.0 via Stdio/SSE) | Proprietary Format per Vendor LLM | HTTP/REST (JSON payload custom) |
| Keterikatan Vendor (Lock-in) | Bebas Vendor (Universal Client & Server) | Terikat API schema model tertentu | Perlu adapter/connector custom per API |
| Reusability Tool | Satu MCP Server dapat dipakai oleh banyak LLM | Perlu re-mapping schema JSON untuk tiap LLM | Manual wiring di level kode aplikasi |
| Model Komunikasi | Stateful / Dynamic Tool Discovery | Stateless (Kirim tool definition tiap prompt) | Stateless Request-Response |
| Mekanisme Keamanan | Sandboxing, User Consent & OAuth Scope | Tergantung enkapsulasi kode backend host | API Key / Bearer Token standar |
Mekanisme Otorisasi & Keamanan Data pada Protokol MCP
Keamanan dan privasi data adalah prioritas utama saat menghubungkan AI Agent dengan data sensitif perusahaan (seperti database MySQL internal atau API pembayaran). Protokol MCP menerapkan 4 pilar arsitektur keamanan terstandardisasi:
- Isolasi Host-Server (Sandboxing): MCP Client dan Server berjalan dalam proses terpisah (misal via Stdio IPC atau SSE). MCP Server tidak memiliki akses langsung ke memory atau state internal dari MCP Host.
- Granular Authorization & User Consent: Setiap kali AI Agent ingin mengeksekusi tool yang berpotensi mengubah data (seperti
DELETE/UPDATEdatabase), MCP Host meminta konfirmasi manual pengguna (Human-in-the-Loop) sebelum mengirimkan payload JSON-RPC ke MCP Server. - Token Permission & Scope Limiting: Komunikasi MCP menggunakan token otorisasi OAuth 2.0 / Bearer token berjangka pendek dengan prinsip least privilege, membatasi akses tool hanya pada endpoint yang diizinkan.
- Enkripsi Transport Layer (TLS/HTTPS): Pada arsitektur MCP Server jarak jauh berbasis SSE (Server-Sent Events), seluruh lalu lintas pesan JSON-RPC 2.0 dienkripsi penuh menggunakan SSL/TLS 1.3.
Studi Kasus Integrasi MCP di Framework Laravel / Symfony & Penanganan Error
Dalam aplikasi enterprise berbasis Laravel atau Symfony, MCP Server dapat diintegrasikan sebagai Service Container atau Artisan Command / Console Worker yang berjalan di latar belakang.
Berikut adalah 3 praktik terbaik penanganan error (Error Handling) standar JSON-RPC 2.0 saat membangun MCP Server di PHP:
-32700 (Parse Error):Tangkap kondisi di mana payload JSON dari client tidak valid atau rusak sebelum diproses oleh controller.-32601 (Method Not Found):Kembalikan kode ini jika AI Agent meminta pemanggilan method atau tool yang tidak terdaftar di MCP Server.-32603 (Internal Error) & Exception Handling:Bungkus eksekusi handler tool dalam bloktry-catch. Jangan biarkan PHP uncaught exception mengekspos credential database, melainkan ubah menjadi pesan error terstruktur.
<?php
// Penanganan Error Standar JSON-RPC 2.0 pada MCP Server PHP
try {
$result = $mcpTool->execute($params);
return json_encode(["jsonrpc" => "2.0", "id" => $id, "result" => $result]);
} catch (\InvalidArgumentException $e) {
return json_encode([
"jsonrpc" => "2.0",
"id" => $id,
"error" => ["code" => -32602, "message" => "Invalid params: " . $e->getMessage()]
]);
} catch (\Throwable $e) {
// Log error internal tanpa mengekspos data sensitif
error_log("MCP Error: " . $e->getMessage());
return json_encode([
"jsonrpc" => "2.0",
"id" => $id,
"error" => ["code" => -32603, "message" => "Terjadi kesalahan internal pada MCP Server."]
]);
}
Poin Kunci Bab 2
MCP adalah masa depan integrasi AI dengan tools. Dengan memahami konsep ini di awal, Anda akan membangun AI Agent yang modular, aman, dan mudah diperluas — bukan solusi ad-hoc yang sulit dipelihara.
Pertanyaan Sering Diajukan (FAQ) MCP & AI Agent
Apa fungsi utama Model Context Protocol (MCP) pada AI Agent?
Fungsi utama MCP adalah menyediakan protokol komunikasi terstandarisasi terbuka yang menghubungkan aplikasi AI Agent (Host) dengan berbagai sumber data dan tools eksternal (Server) secara modular, aman, dan tanpa keterikatan vendor.
Apa perbedaan MCP dengan Function Calling API biasa?
Function Calling biasa terikat pada format API vendor tertentu (seperti OpenAI). MCP adalah protokol terbuka berbasis JSON-RPC 2.0 yang memungkinkan satu MCP Server digunakan kembali oleh berbagai model AI (Claude, GPT, Gemini, Ollama) secara universal.
Bagaimana arsitektur 3 komponen utama dalam MCP?
Arsitektur MCP terdiri dari: 1) MCP Host (aplikasi pembuka sesi AI), 2) MCP Client (penghubung protokol), dan 3) MCP Server (penyedia tools, query database, atau akses file system).
Ditulis oleh: Rusmawan Abdullah Sani
DevOps Engineer & Sysadmin dengan spesialisasi arsitektur PHP 8.3+, CI/CD Pipeline, & Integrasi AI Agent Enterprise.