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 LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM

Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM LangChain adalah framework open-source yang di...

Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir

Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir Google Gemini API adalah salah satu API AI pal...

Tutorial LitServe: Framework Serving Model AI yang Cepat dan Mudah

Tutorial LitServe: Framework Serving Model AI yang Cepat dan Mudah Pendahuluan LitServe adalah framework open-source dar...

Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation

Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation ClearML adalah platform M...