Cara Membangun MCP Server untuk Riset Beasiswa dengan Node.js, Express, dan MongoDB

On: Sep 5, 2026 / By: admin / Categories: Used before category names. IT Infrastructure

Mencari beasiswa itu bukan sekadar ketik kata kunci di Google. Kamu harus memfilter berdasarkan bidang studi, IPK, kewarganegaraan, dan tenggat waktu. Lalu menyimpan daftar pendek, menulis catatan tentang esai dan pemberi rekomendasi, dan seminggu kemudian mencoba ingat kenapa kamu menyimpan program tertentu.

Asisten AI bisa membantu workflow itu, tapi hanya kalau ia bisa mengkueri katalog nyata dan menyimpan apa yang sudah kamu putuskan. Riwayat chat bukan database. Tenggat waktu yang di-haluskan lebih buruk daripada tidak ada tenggat sama sekali.

Model Context Protocol (MCP) adalah standar untuk memberikan akses semacam itu pada aplikasi AI. Dalam tutorial ini, kamu akan membangun MCP server untuk riset beasiswa menggunakan Node.js, Express, dan MongoDB.

Setelah selesai, Cursor, Claude Desktop, atau host MCP lainnya bisa mencari beasiswa, mencocokkannya dengan profil siswa, menyimpan daftar pendek, dan menyimpan catatan riset. Model tetap menjadi lapisan penalaran, sedangkan server kamu yang memegang data.

Yang Akan Kamu Bangun

  • Katalog beasiswa di MongoDB, plus koleksi daftar simpan dan catatan riset
  • Sembilan alat MCP untuk pencarian, pencocokan, tenggat waktu, perbandingan, dan pelacakan riset
  • Resources agar klien bisa membaca katalog tanpa memanggil tool
  • Prompts yang mengubah profil siswa menjadi rencana riset
  • Express app yang menyajikan MCP melalui Streamable HTTP

Mengapa MCP?

MCP adalah protokol terbuka yang memungkinkan aplikasi AI berbicara dengan tool eksternal dan sumber data melalui kontrak bersama. Anthropic memperkenalkannya pada 2024, dan sekarang dipelihara sebagai standar terbuka.

Anthropic mendeskripsikan MCP sebagai “port USB-C untuk aplikasi AI”: satu konektor, banyak host. Alih-alih menulis integrasi terpisah untuk Cursor, Claude Desktop, dan agent kustom, kamu mengimplementasikan protokol sekali.

MCP membagi menjadi dua lapisan: data layer berbasis JSON-RPC 2.0 (request seperti tools/list dan tools/call), dan transport layer yang memindahkan pesan tersebut. Server lokal biasanya menggunakan stdio, sedangkan server remote atau long-running menggunakan Streamable HTTP.

Arsitektur Sistem

Pola arsitekturnya: MCP host (Cursor atau Claude Desktop) berkomunikasi via Streamable HTTP POST /mcp ke Express app, yang meneruskan ke McpServer (tools/resources/prompts), lalu ke Scholarship service, dan akhirnya ke MongoDB yang menyimpan tiga koleksi: scholarships, savedScholarships, dan researchnotes.

Desain penting: handler MCP bersifat stateless (SDK menjalankan factory sekali per HTTP request, pola v2 yang direkomendasikan untuk Streamable HTTP). Koneksi database bersifat process-wide (dibuat sekali saat startup). Permukaan HTTP kecil: /health untuk monitoring, /mcp untuk protokol.

Langkah Implementasi

Pertama, setup project Node.js dengan ESM (karena MCP SDK v2 ESM-first). Install @modelcontextprotocol/server, @modelcontextprotocol/express, @modelcontextprotocol/node, Express, Mongoose, Zod, dan dotenv.

Kedua, hubungkan MongoDB via Mongoose. Ketiga, modelkan data: koleksi Scholarship menyimpan field yang digunakan mesin pencocok (title, provider, amount, deadline, educationLevels, fieldsOfStudy, gpaMinimum, citizenship, dll). Koleksi SavedScholarships dan ResearchNotes menyimpan referensi ke katalog.

Keempat, tujuh tool MCP utama: search_scholarships (keyword + filter), match_scholarships (cocokkan profil siswa), get_scholarship (detail by ID), save_scholarship (simpan ke daftar pendek), get_saved_scholarships, add_research_note, get_research_notes, compare_scholarships, dan upcoming_deadlines.

Kelima, expose resources (catalog URI dan per-scholarship URI) dan prompts (research plan template). Keenam, serve MCP over Express dengan createMcpExpressApp yang sudah termasuk DNS rebinding protection.

Testing & Koneksi

Setelah server jalan, test dengan smoke test script. Lalu hubungkan Cursor atau Claude Desktop dengan konfigurasi:

{
  "mcpServers": {
    "scholarship-research": {
      "command": "node",
      "args": ["path/to/index.js"]
    }
  }
}

Sesi riset berjalan: siswa meminta rencana riset, model memanggil match_scholarships dengan profil siswa, menyimpan pilihan via save_scholarship, menambah catatan via add_research_note, dan mengecek upcoming_deadlines sebelum tenggat habis.

Logika pencocokan bekerja dengan filter ketat: GPA minimum adalah angka, first-generation-only adalah boolean. Pemeriksaan ini dipegang kode, bukan model, sehingga model tidak bisa “mencocokkan” secara sembarangan.

Sumber asli: freecodecamp.org

Leave a reply

WordPress Appliance - Powered by TurnKey Linux