Beranda

AI

Membuat MCP Server Sederhana dengan Pyth...

Membuat MCP Server Sederhana dengan Python: Panduan Langkah...

Membuat MCP Server Sederhana dengan Python: Panduan Langkah demi Langkah

Panduan langkah demi langkah membangun Model Context Protocol (MCP) server pertama Anda dengan Python — dari instalasi SDK, menulis tool pertama, menguji dengan MCP Inspector, hingga menghubungkannya ke Claude Desktop.

Membuat MCP Server Sederhana dengan Python: Panduan Langkah demi Langkah

Model Context Protocol (MCP) adalah standar terbuka buatan Anthropic yang memungkinkan asisten AI seperti Claude terhubung secara aman ke data dan tools di luar dirinya — file lokal, database, API pihak ketiga, bahkan CMS sebuah website. Bila selama ini setiap integrasi AI ke sebuah sistem butuh kode custom yang berbeda-beda, MCP menyediakan satu "bahasa universal" yang bisa dipakai berulang oleh model manapun.

Tutorial ini akan memandu kamu membangun MCP server sederhana dari nol menggunakan Python, lengkap dengan satu tool yang bisa dipanggil oleh AI assistant seperti Claude Desktop.

Prasyarat

Sebelum mulai, pastikan kamu sudah punya:

  • Python 3.10 atau lebih baru
  • pip atau uv untuk manajemen paket
  • Claude Desktop (opsional, untuk menguji server secara langsung)
  • Pemahaman dasar tentang fungsi dan decorator di Python

Tip: Kalau belum familier dengan konsep dasar MCP, singkatnya begini: sebuah MCP server menyediakan tiga hal — tools (fungsi yang bisa dijalankan AI), resources (data yang bisa dibaca AI), dan prompts (template instruksi siap pakai). Tutorial ini fokus membangun sebuah tool sederhana.

Langkah 1: Siapkan Proyek dan Instal SDK

Buat folder proyek baru, lalu instal Python SDK resmi untuk MCP.

mkdir mcp-server-cuaca
cd mcp-server-cuaca
python -m venv venv
source venv/bin/activate  # di Windows: venv\Scripts\activate
pip install mcp

Paket mcp ini menyediakan kelas FastMCP, cara tercepat untuk mendefinisikan server tanpa perlu menulis skema JSON secara manual.

Langkah 2: Tulis Kerangka Server

Buat file server.py dan mulai dengan inisialisasi server dasar.

from mcp.server.fastmcp import FastMCP

# Inisialisasi server dengan nama unik
mcp = FastMCP("cuaca-server")

if __name__ == "__main__":
    mcp.run(transport="stdio")

Baris transport="stdio" berarti server berkomunikasi lewat standard input/output — cara paling umum dipakai saat MCP server dijalankan lokal oleh Claude Desktop.

Langkah 3: Definisikan Tool Pertama

Sekarang kita tambahkan satu tool: fungsi yang bisa dipanggil AI untuk mengambil data. Contoh ini membuat tool sederhana yang mengembalikan info cuaca dummy — di proyek nyata, bagian ini bisa diganti dengan pemanggilan API cuaca sungguhan.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("cuaca-server")

@mcp.tool()
def cek_cuaca(kota: str) -> str:
    """Mengambil informasi cuaca terkini untuk sebuah kota.

    Args:
        kota: Nama kota yang ingin dicek cuacanya.
    """
    # Di sini biasanya kamu memanggil API cuaca sungguhan
    data_dummy = {
        "jakarta": "Cerah berawan, 31°C",
        "bandung": "Hujan ringan, 22°C",
        "surabaya": "Cerah, 33°C",
    }
    hasil = data_dummy.get(kota.lower(), "Data cuaca untuk kota ini tidak tersedia")
    return f"Cuaca di {kota}: {hasil}"

if __name__ == "__main__":
    mcp.run(transport="stdio")

Perhatikan bahwa docstring pada fungsi bukan sekadar komentar — MCP memakainya untuk memberi tahu AI kapan dan bagaimana tool ini seharusnya dipakai. Semakin jelas deskripsinya, semakin tepat AI memutuskan kapan memanggil tool tersebut.

Peringatan: Jangan pernah menaruh kredensial (API key, password) langsung di kode. Gunakan environment variable dan muat lewat os.environ.get("NAMA_VARIABEL").

Langkah 4: Uji Server dengan MCP Inspector

Sebelum menyambungkannya ke Claude Desktop, uji dulu server secara mandiri memakai MCP Inspector — alat resmi berbasis browser untuk mengecek tools tanpa perlu melibatkan AI.

npx @modelcontextprotocol/inspector python server.py

Perintah ini membuka antarmuka di browser tempat kamu bisa melihat daftar tools yang terdaftar, mencoba memanggilnya dengan input manual, dan memeriksa respons JSON-RPC yang dikembalikan.

Langkah 5: Hubungkan ke Claude Desktop

Setelah yakin tool berjalan benar, daftarkan server ke konfigurasi Claude Desktop. Buka file konfigurasinya:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Tambahkan entri berikut:

{
  "mcpServers": {
    "cuaca-server": {
      "command": "python",
      "args": ["/path/lengkap/ke/server.py"]
    }
  }
}

Simpan file, lalu restart Claude Desktop sepenuhnya. Jika berhasil, kamu akan melihat ikon tools baru di antarmuka chat, dan Claude bisa memanggil cek_cuaca setiap kali percakapan membutuhkannya — misalnya saat kamu bertanya "Bagaimana cuaca di Bandung hari ini?"

Tip: Gunakan path absolut, bukan relatif, di bagian args. Ini penyebab paling umum kenapa MCP server "tidak terdeteksi" oleh Claude Desktop.

Langkah 6: Tambahkan Penanganan Error yang Baik

Server produksi butuh penanganan error yang jelas supaya AI tahu kapan sesuatu gagal, bukan diam-diam mengembalikan data kosong.

@mcp.tool()
def cek_cuaca(kota: str) -> str:
    """Mengambil informasi cuaca terkini untuk sebuah kota."""
    if not kota or not kota.strip():
        raise ValueError("Nama kota tidak boleh kosong")

    try:
        # panggilan API sungguhan di sini
        ...
    except Exception as e:
        return f"Gagal mengambil data cuaca: {str(e)}"

Pesan error yang deskriptif membantu AI memberi penjelasan yang masuk akal ke pengguna, alih-alih sekadar bilang "terjadi kesalahan".

Penutup dan Langkah Selanjutnya

Kamu baru saja membangun MCP server pertama dengan satu tool fungsional yang bisa dipanggil langsung oleh Claude. Konsep yang sama ini adalah fondasi di balik banyak integrasi MCP populer sekarang — mulai dari koneksi ke Google Drive, Gmail, database Postgres, sampai CMS blog seperti yang dipakai artikel ini sendiri untuk dipublikasikan secara otomatis.

Beberapa langkah lanjutan yang bisa kamu eksplorasi:

  • Tambahkan resources agar AI bisa membaca data tanpa memanggil fungsi (misalnya isi file atau baris database)
  • Ganti transport dari stdio ke HTTP agar server bisa diakses dari jarak jauh, bukan hanya lokal
  • Tambahkan autentikasi dan validasi input yang lebih ketat sebelum dipakai di lingkungan produksi
  • Pelajari MCP Gateway atau Docker MCP untuk deployment yang lebih aman dan terkelola

Dengan fondasi ini, kamu sudah siap membangun integrasi AI yang lebih kompleks dan sesuai kebutuhan proyekmu sendiri.

Post Terkait

Anthropic Akan Beri Watermark pada Teks Buatan Model AI-nya: Ulasan Mendalam

Anthropic akan menyematkan watermark tak kasat mata pada teks buatan Claude untuk memenuhi Pasal 50 EU AI Act — diterapk...

11 Agt 2026

Alibaba dan DeepSeek Dorong Persaingan Model AI China ke Arah Biaya Lebih Murah

Alibaba meluncurkan Qwen3.8-Max sementara DeepSeek menekan harga inference lewat V4-Flash. Persaingan model AI China kin...

11 Agt 2026

Claude Certified Architecture Foundation: Panduan Lengkap Sertifikasi AI untuk Arsitek Software Modern

Panduan komprehensif tentang program Claude Certified Architecture Foundation dari Anthropic, mencakup struktur sertifik...

22 Jul 2026

© 2026 Yowisben. Semua hak dilindungi.

Powered by LONTAR CMS v1.49.0