Lo pernah kepikiran nggak sih, gimana sih caranya bikin AI kayak ChatGPT nggak cuma pinter ngomong, tapi juga bisa "nyolok" langsung ke berbagai sumber data dan tool tanpa ribet bikin integrasi satu-satu? Nah, ini dia yang lagi hot banget dibahas: Model Context Protocol alias MCP. MCP ini intinya adalah standar terbuka yang bikin LLM (Large Language Model) bisa nyambung mulus ke berbagai data dan layanan, kayak USB-C buat smartphone lo—satu colokan, banyak fungsi.
Biar makin paham, yuk kita kulik MCP dari berbagai sisi, mulai dari definisi, perbandingan sama RAG, arsitektur, sampai contoh kode yang bisa lo coba langsung!
Pendahuluan: kenapa MCP rame dibahas?
LLM sekarang tuh udah makin pintar dan canggih gila. Tapi masalahnya, kalau datanya cuma ngumpul di silo alias terkotak-kotak, ya LLM cuma pintar tanpa konteks yang dalam. Jadi susah banget buat aplikasi yang butuh data real-time atau action otomatis. Makanya Anthropic ngenalin MCP sebagai standar terbuka yang bikin LLM gampang "nyolok" ke berbagai sumber data dan tools tanpa harus bikin integrasi khusus satu-satu. Jadi, masalah M × N (banyak model, banyak data/tool) bisa berubah jadi M + N yang jauh lebih simpel.
Definisi singkat ala “USB-C untuk AI”
Kalau lo pernah nyolok USB-C di laptop atau HP, pasti tau betapa praktisnya satu kabel itu bisa dipakai buat transfer data, nge-charge, sambungin ke monitor, dan lain-lain. Nah, MCP itu ibarat "USB-C port" buat aplikasi AI. OpenAI Agents SDK bilang MCP bundling cara buat discover tool, call function, dan stream hasilnya. Jadi LLM bisa langsung tarik info atau ngeksekusi aksi dari berbagai tools secara terpadu tanpa ribet.
MCP vs. Retrieval-Augmented Generation (RAG)
MCP dan RAG sama-sama ngasih "otak tambahan" ke LLM, tapi fokus dan cara kerjanya beda banget:
- RAG: fokus ke retrieval. Biasanya embed data jadi vector, lalu cari di vector DB, baru sisipin ke prompt biar LLM punya konteks tambahan. Cocok buat Q&A dokumen, knowledge base, atau enterprise search.
- MCP: fokus ke tooling dan action. LLM bisa “menyuruh” server buat ngelakuin sesuatu, misal query SQL, update tiket, kirim email, dll. Cocok buat workflow agentic seperti otomatisasi operasional, DevOps bot, CRM assistant. MCP bisa real-time dan bahkan write-back.
Kalau RAG itu kayak ngasih LLM otak buat baca dan ngerti dokumen, MCP itu kayak ngasih tangan buat beraksi langsung. Keduanya bisa dipakai barengan biar LLM nggak cuma cerdas tapi juga produktif.
Arsitektur inti MCP
Secara garis besar, MCP punya 4 komponen utama:
- MCP Host: aplikasi AI yang jadi "otak", misal chatbot di IDE, web, atau WhatsApp.
- MCP Client: library di host yang buka koneksi ke MCP server.
- MCP Server: program ringan yang daftar tools dan resource seperti REST API, DB, filesystem, layanan SaaS.
- Transport: tiga mode resmi buat komunikasi, yaitu stdio (sub-process lokal), HTTP + Server-Sent Events (SSE), dan Streamable HTTP (bi-directional streaming).
Di awal proses, MCP client manggil fungsi list_tools() buat kasih tahu LLM tools apa aja yang tersedia beserta schema fungsinya. Saat inference, LLM bisa panggil call_tool() yang dijalankan server. Ada juga cache opsional buat ngurangin latency kalau perlu.
Cara kerja MCP + RAG dalam satu alur
Bayangin lo tanya chatbot: "Berapa sisa stok SKU A dan tolong restock kalau di bawah 10?" Berikut alur kerjanya:
- LLM di host mikir, oh ini butuh data inventori dari tool
get_stockdan mungkin aksi lewatorder_stock. - MCP Client langsung manggil MCP Server ERP buat
get_stock(SKU A). - Server balikin data qty=4.
- LLM lihat stok kurang dari 10, lalu minta server buat order stock baru lewat
order_stock(SKU A, quantity=100). - Server konfirmasi aksi berhasil, LLM generate jawaban lengkap plus detail langkah yang sudah dijalankan.
Kalau butuh konteks dokumen atau SOP yang panjang, host bisa tetep jalanin RAG buat tarik paragraf relevan dan sisipin ke prompt. Jadi retrieval dan action bisa jalan barengan mulus.
Tech-stack pendukung MCP (end-to-end)
Ini daftar lapisan teknologi beserta contoh stack yang biasa dipake buat implementasi MCP:
- LLM: OpenAI GPT-4o, Claude 3.5, Gemini 1.5, Azure OpenAI (harus support function-calling)
- MCP Client/SDK: openai-agents-python, fastmcp (Python), @modelcontextprotocol/client (TypeScript). Bertugas handle koneksi, streaming, retry, dan autentikasi.
- MCP Server libs: fastmcp, mcp-server-filesystem, mcp-server-postgres, merge-mcp. Buat expose tools/resources via stdio/SSE.
- Vector DB (opsional buat RAG): Pinecone, Qdrant, Weaviate, PGVector. Dipakai buat semantic search kalau perlu retrieval.
- Data source: Postgres/MySQL, MongoDB, Google Drive, GitHub, Slack, internal REST/GraphQL. Bisa di-wrap jadi MCP server atau diakses lewat connector yang ada.
- Orkestrasi/Agent-framework: LangChain, LlamaIndex, CrewAI, Chainlit. Banyak yang udah punya adaptor MCP.
- Infra: Docker, Kubernetes, Fly.io, Serverless, VPN/Tunnel lokal. Penting buat keamanan dan scaling.
- Security: OAuth 2.0, mTLS, JWT, ACL per-tool. MCP mendukung granular permission di level server.
Contoh kode “Hello MCP” (Python)
Ini contoh sederhana buat bikin MCP server yang expose dua fungsi: baca semua karyawan dan hapus karyawan.
from fastmcp import MCPServer, Resource, Tool
import aiosqlite, asyncio
# Resource: baca semua karyawan
async def all_employees():
async with aiosqlite.connect("emp.db") as db:
rows = await db.execute_fetchall("SELECT * FROM employees")
return [dict(row) for row in rows]
# Tool: hapus karyawan
async def delete_employee(id:int):
async with aiosqlite.connect("emp.db") as db:
await db.execute("DELETE FROM employees WHERE id=?", (id,))
await db.commit()
return {"status":"deleted"}
srv = MCPServer()
srv.register_resource(Resource("get_all_employees", all_employees))
srv.register_tool(Tool("delete_employee", delete_employee))
if __name__ == "__main__":
asyncio.run(srv.run())
Server ini bisa langsung "di-discover" oleh ChatGPT atau Claude lewat stdio dan muncul sebagai fungsi tanpa perlu nulis OpenAPI spec sama sekali. Keren kan?
Best practice integrasi MCP + RAG
Biar integrasi lo makin mantap, perhatikan ini:
- Pisahkan concerns: Pakai MCP buat operasi mutasi atau real-time, RAG buat long-tail dokumentasi yang butuh retrieval semantic.
- Schema design: Jelaskan parameter fungsi di server dengan eksplisit supaya model nggak gampang halu (hallucinate).
- Granular ACL: Batasi tools yang bisa dipakai berdasarkan role user supaya aman.
- Rate-limit & observability: Aktifkan tracing bawaan SDK biar gampang debug dan audit aktivitas.
- Zero-shot vs system prompt: Jelaskan di instruksi kapan model boleh manggil tool dan hindari tool-spamming supaya efisien.
Kesimpulan
MCP adalah solusi keren yang memecahkan masalah integrasi data dan tool yang selama ini ribet karena harus bikin adapter satu-satu. Dengan MCP, AI punya "port universal" yang bikin integrasi jadi praktis, efisien, dan scalable. Kalau digabung sama RAG, kita dapet LLM yang nggak cuma jago ngobrol tapi juga langsung terhubung ke data nyata dan bisa bertindak otomatis. Cocok banget buat chatbot customer service, dashboard internal, agen DevOps, dan lain-lain. Dengan tech-stack yang open source dan mudah diakses, developer di Indonesia bisa langsung gas bikin solusi AI context-aware kelas enterprise.
Selamat ngoprek dan semoga artikel ini jadi peta jalan buat proyek LLM + RAG lo selanjutnya! 🚀