MCP (Model Context Protocol): Membangun Integrasi Tools untuk AI

# MCP (Model Context Protocol): Membangun Integrasi Tools untuk AI Model Context Protocol (MCP) adalah protokol standar terbuka yang dikembangkan oleh Anthropic untuk menghubungkan asisten AI dengan...

By Ruby Abdullah · · tutorial
MCPModel Context ProtocolAnthropicTool UsePython

MCP (Model Context Protocol): Membangun Integrasi Tools untuk AI

Model Context Protocol (MCP) adalah protokol standar terbuka yang dikembangkan oleh Anthropic untuk menghubungkan asisten AI dengan sumber data dan tools eksternal. Bayangkan MCP sebagai "USB-C untuk AI" — satu standar universal yang memungkinkan AI model apapun terhubung dengan tools apapun tanpa perlu integrasi khusus untuk setiap kombinasi.

Dalam tutorial ini, kita akan mempelajari arsitektur MCP secara mendalam, membangun MCP server dan client dari nol, serta membuat contoh praktis berupa database query server yang memungkinkan AI assistant melakukan query PostgreSQL dengan aman.

Mengapa MCP Penting?

Sebelum MCP, setiap integrasi antara AI dan tools eksternal memerlukan implementasi khusus. Jika Anda memiliki 5 AI model dan 10 tools, Anda memerlukan 50 integrasi berbeda. MCP menyelesaikan masalah ini dengan menyediakan satu protokol standar.

Keuntungan utama MCP:

  • Standarisasi: Satu protokol untuk semua integrasi AI-tools
  • Keamanan: Kontrol akses granular terhadap data dan operasi
  • Modularitas: Server dan client dapat dikembangkan secara independen
  • Ekosistem: Komunitas yang berkembang dengan banyak server siap pakai
  • Vendor-agnostic: Tidak terikat pada satu provider AI tertentu

Arsitektur MCP

MCP menggunakan arsitektur client-server dengan tiga komponen utama:

1. Host

Host adalah aplikasi AI yang digunakan pengguna, seperti Claude Desktop, Claude Code, atau IDE dengan fitur AI. Host mengelola koneksi dan menyediakan antarmuka pengguna.

2. Client

Client adalah komponen di dalam host yang mengelola koneksi ke satu MCP server. Setiap client memiliki koneksi 1:1 dengan satu server. Client menangani negosiasi kapabilitas dan routing pesan.

3. Server

Server adalah program yang mengekspos resources, tools, dan prompts kepada client. Server bisa berjalan secara lokal atau remote dan berkomunikasi melalui transport layer yang didukung.

┌─────────────────────────────────────┐

│ HOST │

│ (Claude Desktop / Claude Code) │

│ │

│ ┌──────────┐ ┌──────────┐ │

│ │ Client 1 │ │ Client 2 │ │

│ └────┬─────┘ └────┬─────┘ │

└───────┼───────────────┼─────────────┘

│ │

┌────▼─────┐ ┌────▼─────┐

│ Server A │ │ Server B │

│ (DB) │ │ (Files) │

└──────────┘ └──────────┘

Primitif Utama MCP

MCP mendefinisikan tiga primitif utama yang dapat diekspos oleh server:

Resources

Resources adalah data yang dapat dibaca oleh AI, seperti file, database record, atau API response. Resources diidentifikasi dengan URI dan bersifat read-only.

Tools

Tools adalah fungsi yang dapat dipanggil oleh AI untuk melakukan aksi. Tools memiliki parameter yang didefinisikan dengan JSON Schema dan mengembalikan hasil dalam format terstruktur.

Prompts

Prompts adalah template yang dapat digunakan ulang untuk interaksi AI. Prompts membantu pengguna melakukan tugas umum dengan cara yang terstruktur.

Instalasi

Python SDK

# Install menggunakan pip

pip install mcp

Atau menggunakan uv (direkomendasikan)

uv add mcp

Untuk development

uv add "mcp[cli]"

TypeScript SDK

# Install menggunakan npm

npm install @modelcontextprotocol/sdk

Atau menggunakan pnpm

pnpm add @modelcontextprotocol/sdk

MCP Inspector (untuk testing)

# Jalankan MCP Inspector

npx @modelcontextprotocol/inspector

Membangun MCP Server dengan Python

Mari kita mulai dengan membangun MCP server sederhana yang mengekspos resources, tools, dan prompts.

Server Dasar

# server.py

from mcp.server.fastmcp import FastMCP

Inisialisasi server

mcp = FastMCP("Demo Server")

Definisikan resource

@mcp.resource("config://app")

def getconfig() -> str:

"""Mengembalikan konfigurasi aplikasi."""

return "App Configuration: debug=true, version=1.0"

Definisikan tool

@mcp.tool()

def calculatebmi(weightkg: float, heightm: float) -> str:

Artikel Terkait

Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...