AI

Model Context Protocol (MCP): Panduan Lengkap dan Cara Membuat MCP Server

Pelajari apa itu Model Context Protocol (MCP), cara kerjanya, manfaatnya, dan tutorial membuat MCP server Python untuk dihubungkan ke Claude Desktop.

Model Context Protocol (MCP): Panduan Lengkap dan Cara Membuat MCP Server

Model Context Protocol (MCP): Panduan Lengkap dan Cara Membuat MCP Server

Pernahkah Anda merasa AI chatbot sangat pintar, tetapi "terkurung" di dalam jendela chat? Ia tidak bisa membaca repository GitHub Anda, membuka database, atau menulis catatan ke Notion, kecuali Anda membuat integrasi khusus untuk setiap layanan.

Di sinilah Model Context Protocol (MCP) berperan. MCP adalah standar terbuka yang memungkinkan model bahasa besar (LLM) terhubung ke tools, data, dan API eksternal lewat satu antarmuka yang seragam. Dalam artikel ini Anda akan memahami apa itu MCP, cara kerjanya, manfaatnya, serta cara membuat MCP server sederhana dengan Python.

Daftar Isi

  1. Apa Itu Model Context Protocol (MCP)?
  2. Mengapa MCP Penting?
  3. Arsitektur dan Cara Kerja MCP
  4. Tiga Kemampuan Utama MCP Server
  5. Tutorial: Membuat MCP Server dengan Python
  6. Contoh Kasus: Otomatisasi Review Pull Request
  7. Praktik Terbaik dan Keamanan
  8. FAQ
  9. Kesimpulan

Apa Itu Model Context Protocol (MCP)?

Model Context Protocol (MCP) adalah standar terbuka yang dikembangkan oleh Anthropic untuk menghubungkan aplikasi AI dengan sistem eksternal secara terstandar. Anthropic merilisnya sebagai open source pada November 2024.

Analogi yang paling mudah adalah port USB-C. Dulu setiap perangkat punya kabel dan konektor sendiri. USB-C menyatukannya menjadi satu standar. MCP melakukan hal yang sama untuk AI: alih-alih membuat integrasi khusus untuk tiap kombinasi model dan layanan, Anda cukup membuat satu MCP server yang bisa dipakai oleh banyak aplikasi AI.

Mengapa MCP Penting?

Sebelum ada MCP, menghubungkan LLM ke sistem lain berarti menulis kode integrasi berulang-ulang. Jika ada 5 aplikasi AI dan 10 layanan, Anda berpotensi membangun 50 integrasi berbeda. Dengan MCP, masalah "N × M" ini menjadi "N + M".

Manfaat utamanya:

  • Standardisasi integrasi. Satu protokol untuk banyak tools dan banyak model.
  • Fleksibilitas. Server yang sama bisa dipakai lintas aplikasi yang mendukung MCP, sehingga Anda tidak terkunci pada satu vendor.
  • Modularitas. Setiap tool dipisah menjadi server tersendiri, lebih mudah dirawat dan diuji.
  • Kontrol data. Server berjalan di infrastruktur Anda sendiri, sehingga Anda menentukan data apa yang boleh diakses AI.
  • Skalabilitas. Mendukung transport lokal (stdio) maupun jarak jauh (HTTP).

Arsitektur dan Cara Kerja MCP

MCP memakai arsitektur client-server dengan tiga peran:

Komponen Peran Contoh
Host Aplikasi AI yang dipakai pengguna Claude Desktop, IDE dengan asisten AI
MCP Client Bagian dari host yang menjaga koneksi ke satu server Konektor bawaan aplikasi
MCP Server Program yang mengekspos tools dan data Server GitHub, server database, server Notion

Alurnya secara sederhana:

  1. Pengguna mengirim permintaan di aplikasi AI (host).
  2. Model menyadari ada tool MCP yang relevan, lalu meminta client memanggilnya.
  3. MCP server menjalankan aksi, misalnya mengambil data dari API, lalu mengembalikan hasilnya.
  4. Model memakai hasil tersebut untuk menyusun jawaban akhir. Komunikasi antara client dan server menggunakan pesan JSON-RPC. Untuk server lokal, transport yang umum dipakai adalah stdio; untuk server jarak jauh, gunakan Streamable HTTP.

Tiga Kemampuan Utama MCP Server

Sebuah MCP server dapat menawarkan tiga jenis kemampuan:

  • Tools: fungsi yang bisa dipanggil model untuk melakukan aksi, misalnya "buat halaman Notion" atau "ambil daftar file di pull request".
  • Resources: data yang bisa dibaca sebagai konteks, misalnya isi file atau skema database.
  • Prompts: template instruksi yang dapat dipakai ulang oleh pengguna. Sebagian besar server sederhana cukup memakai tools.

Tutorial: Membuat MCP Server dengan Python

Berikut contoh MCP server minimal menggunakan SDK Python resmi. Server ini menyediakan satu tool untuk mengambil daftar file yang berubah dalam sebuah pull request GitHub.

Prasyarat

  • Python 3.10 atau lebih baru
  • Akun GitHub dan personal access token
  • Claude Desktop (atau aplikasi lain yang mendukung MCP)

Langkah 1: Siapkan proyek

# Instal uv (package manager Python yang cepat)
curl -LsSf https://astral.sh/uv/install.sh | sh
 
# Buat proyek dan tambahkan dependensi
uv init pr-reviewer
cd pr-reviewer
uv add "mcp[cli]" requests python-dotenv

Langkah 2: Simpan kredensial di .env

GITHUB_TOKEN=isi_token_github_anda

Penting: jangan pernah commit file .env ke repository. Tambahkan ke .gitignore.

Langkah 3: Tulis server

Buat file server.py:

import os
import requests
from dotenv import load_dotenv
from mcp.server.fastmcp import FastMCP
 
load_dotenv()
GITHUB_TOKEN = os.getenv("GITHUB_TOKEN")
 
mcp = FastMCP("github-pr-helper")
 
 
@mcp.tool()
def get_pr_files(owner: str, repo: str, pr_number: int) -> list[dict]:
    """Ambil daftar file yang berubah pada sebuah pull request GitHub."""
    url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/files"
    headers = {"Authorization": f"Bearer {GITHUB_TOKEN}"}
 
    response = requests.get(url, headers=headers, timeout=15)
    response.raise_for_status()
 
    return [
        {
            "filename": f["filename"],
            "status": f["status"],
            "additions": f["additions"],
            "deletions": f["deletions"],
            "patch": f.get("patch", ""),
        }
        for f in response.json()
    ]
 
 
if __name__ == "__main__":
    mcp.run(transport="stdio")

Docstring pada fungsi penting: itulah yang dibaca model untuk memahami kapan dan bagaimana tool tersebut dipakai.

Langkah 4: Hubungkan ke Claude Desktop

Buka file konfigurasi Claude Desktop (claude_desktop_config.json) lalu tambahkan server Anda:

{
  "mcpServers": {
    "github-pr-helper": {
      "command": "uv",
      "args": ["--directory", "/path/ke/pr-reviewer", "run", "server.py"]
    }
  }
}

Restart Claude Desktop. Jika berhasil, tool dari server Anda akan muncul di daftar tools yang tersedia.

Langkah 5: Coba

Kirim pesan seperti:

"Tolong review pull request #12 di repo nama-org/nama-repo dan rangkum perubahan pentingnya."

Model akan memanggil get_pr_files, membaca diff-nya, lalu menyusun ringkasan dan saran perbaikan.

Contoh Kasus: Otomatisasi Review Pull Request

Dengan menambahkan tool kedua, misalnya untuk menulis hasil review ke Notion, Anda mendapatkan alur kerja lengkap:

  1. Ambil data: server mengambil detail dan diff PR dari GitHub.
  2. Analisis: model membaca perubahan kode dan menyusun ringkasan, potensi bug, serta saran.
  3. Dokumentasi: setelah Anda menyetujui, hasil review disimpan ke halaman Notion untuk arsip tim. Perhatikan bahwa analisis dilakukan oleh model itu sendiri. MCP server hanya menyediakan akses ke data dan aksi. Ini membuat server tetap ringan dan mudah dirawat.

Praktik Terbaik dan Keamanan

Karena MCP memberi AI kemampuan untuk bertindak, terapkan prinsip berikut:

  • Least privilege. Berikan token dengan izin sekecil mungkin. Jika hanya perlu membaca PR, jangan beri izin menulis.
  • Simpan rahasia dengan aman. Gunakan environment variable atau secret manager, bukan hardcode di kode.
  • Butuh persetujuan pengguna. Untuk aksi yang mengubah data (menulis, menghapus, mengirim), biarkan pengguna mengonfirmasi terlebih dahulu.
  • Validasi input. Perlakukan parameter dari model seperti input pengguna yang tidak tepercaya.
  • Beri deskripsi tool yang jelas. Nama dan docstring yang spesifik mengurangi salah pakai.
  • Batasi server dari sumber tidak dikenal. Hanya pasang MCP server dari sumber yang Anda percayai, karena server berjalan dengan akses ke sistem Anda.
  • Catat log ke stderr. Pada transport stdio, output ke stdout dipakai untuk protokol, jadi log debug sebaiknya ke stderr.

FAQ

Apa itu MCP dalam AI?

MCP (Model Context Protocol) adalah standar terbuka yang memungkinkan aplikasi AI terhubung ke tools, database, dan API eksternal melalui antarmuka yang seragam.

Siapa yang membuat MCP?

MCP dikembangkan oleh Anthropic dan dirilis sebagai open source pada November 2024. Sejak itu protokol ini didukung oleh banyak aplikasi dan platform di luar Claude.

Apakah MCP hanya bisa dipakai dengan Claude?

Tidak. MCP adalah protokol terbuka, sehingga aplikasi AI lain juga dapat mengimplementasikannya. Satu MCP server bisa dipakai oleh berbagai host yang kompatibel.

Apa bedanya MCP dengan API biasa?

API biasa dibuat untuk dipanggil oleh developer lewat kode. MCP membungkus kemampuan tersebut dalam format standar yang bisa ditemukan dan dipakai langsung oleh model AI, lengkap dengan deskripsi tool.

Bahasa pemrograman apa yang bisa dipakai untuk membuat MCP server?

SDK resmi tersedia untuk beberapa bahasa, termasuk Python dan TypeScript. Anda bisa memilih yang paling sesuai dengan stack Anda.

Apakah MCP aman?

MCP sendiri adalah protokol; tingkat keamanannya bergantung pada implementasi. Terapkan izin minimal, konfirmasi pengguna untuk aksi sensitif, dan hanya gunakan server dari sumber tepercaya.

Kesimpulan

Model Context Protocol mengubah cara kita menghubungkan AI dengan dunia nyata: dari integrasi khusus yang berulang menjadi satu standar yang bisa dipakai bersama. Dengan MCP server, model seperti Claude dapat membaca data dari GitHub, menyimpan hasil ke Notion, dan menjalankan berbagai tugas lain langsung dari percakapan.

Untuk mulai, buat satu server kecil seperti contoh di atas, uji di Claude Desktop, lalu tambahkan tool sedikit demi sedikit sesuai kebutuhan alur kerja Anda.


Sumber dan bacaan lanjutan

← Semua artikel