Sebelum memulai praktik, pastikan Anda telah memahami konsep dasar pada materi kelas AI Agent & PHP di infokoding.

BAB 2

Apa Itu MCP (Model Context Protocol)?

Mengenal MCP (Model Context Protocol): protokol standar yang dibuat Anthropic untuk menghubungkan AI dengan tools dan data sumber secara terstruktur dan aman.

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.

Clone / Fork Repositori

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:

  1. MCP Host (aplikasi AI Anda) memulai sesi dengan MCP Server.
  2. Host meminta daftar tools yang tersedia dari Server menggunakan protokol MCP.
  3. AI Model memutuskan tool mana yang perlu dipanggil berdasarkan permintaan user.
  4. MCP Client mengirim permintaan pemanggilan tool ke MCP Server.
  5. MCP Server mengeksekusi tool dan mengembalikan hasilnya.
  6. 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 Visual Arsitektur Model Context Protocol (MCP): Interaksi MCP Host, MCP Client, dan MCP Server via JSON-RPC 2.0

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 / UPDATE database), 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 blok try-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).

Rusmawan Abdullah Sani

Ditulis oleh: Rusmawan Abdullah Sani

DevOps Engineer & Sysadmin dengan spesialisasi arsitektur PHP 8.3+, CI/CD Pipeline, & Integrasi AI Agent Enterprise.