# Membangun MCP Server dari Nol: Panduan Praktis untuk Developer

> Panduan langkah-demi-langkah membangun server Model Context Protocol dengan alat nyata, autentikasi, dan deployment produksi menggunakan TypeScript SDK resmi.

URL: https://www.matthewswong.com/id/blog/mcp-server-development-guide/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2025-06-10
- Updated: 2026-10-17
- Category: AI

Model Context Protocol (MCP) adalah standar terbuka Anthropic untuk menghubungkan model AI ke alat dan sumber data eksternal. Bayangkan seperti standar USB-C untuk integrasi AI — alih-alih setiap asisten AI mengimplementasikan sistem plugin kustomnya sendiri, MCP memberikan satu protokol yang dapat dipahami oleh klien mana pun yang kompatibel. Membangun server MCP untuk alat internal, dan mengekspos data ERP ke Claude melalui server MCP yang tepat, dapat memberikan keuntungan produktivitas yang signifikan.

## Arsitektur MCP: Cara Kerjanya

MCP mendefinisikan protokol klien-server melalui stdio atau HTTP/SSE. Model AI (klien) menemukan alat dan sumber daya yang tersedia dari server MCP Anda, lalu memanggil alat tersebut selama percakapan. Server Anda menangani eksekusi alat dan mengembalikan hasil. Protokol berbasis JSON-RPC 2.0, stateful, dan mendukung tiga primitif: Tools (fungsi yang dapat dieksekusi), Resources (data yang dapat dibaca), dan Prompts (template prompt yang dapat digunakan ulang).

### Menyiapkan TypeScript MCP Server SDK

Anthropic menyediakan SDK resmi untuk TypeScript dan Python. TypeScript SDK adalah yang paling matang dan yang saya gunakan dalam produksi. Install dengan npm install @modelcontextprotocol/sdk. SDK menangani negosiasi protokol, manajemen sesi, dan serialisasi. Anda fokus pada mendefinisikan alat dan mengimplementasikan handler-nya.

> Dari pengalaman saya membangun server MCP untuk integrasi ERP: definisikan skema alat Anda secara ketat menggunakan validasi Zod. Model AI bergantung pada deskripsi JSON Schema Anda untuk memahami parameter apa yang harus dikirim. Deskripsi yang samar menghasilkan tool call yang salah. Tulis deskripsi seolah-olah menjelaskan kepada developer junior cerdas yang belum pernah melihat sistem Anda.

## Membangun MCP Tool Pertama Anda

Server MCP lengkap dengan alat nyata yang mengquery database ERP. Contoh ini mengimplementasikan alat untuk mencari status faktur — kasus penggunaan integrasi ERP umum yang mendemonstrasikan autentikasi, query database, dan pemformatan respons terstruktur.

### Pola Definisi dan Handler Alat

Setiap alat membutuhkan nama, deskripsi, skema input (JSON Schema), dan fungsi handler. Handler menerima input yang divalidasi dan mengembalikan array konten. Kembalikan data terstruktur sebagai string JSON di dalam blok konten teks — ini memberi model AI data yang dapat dibaca mesin sambil mempertahankan kompatibilitas protokol. Selalu sertakan penanganan error.

> **Peringatan Keamanan**

> Server MCP yang berjalan secara lokal via stdio memiliki akses ke izin akun pengguna penuh Anda. Server MCP berbahaya dapat membaca file, mengeksekusi perintah, dan membuat permintaan jaringan sebagai pengguna Anda. Selalu tinjau kode server MCP sebelum menginstalnya. Untuk server MCP jarak jauh produksi, implementasikan autentikasi (OAuth 2.0 adalah rekomendasi spesifikasi MCP), tegakkan HTTPS, dan terapkan prinsip hak istimewa terkecil.

## Autentikasi dan Otorisasi

Server MCP jarak jauh harus mengimplementasikan autentikasi. Spesifikasi MCP merekomendasikan OAuth 2.0 dengan PKCE untuk autentikasi klien. Untuk alat internal, pendekatan yang lebih sederhana adalah autentikasi bearer token yang divalidasi per permintaan. Saya mengimplementasikan lapisan middleware yang mengekstrak header Authorization, memvalidasi token terhadap database pengguna kami, dan melampirkan konteks pengguna ke permintaan sebelum handler alat dieksekusi.

## Deployment dan Pertimbangan Produksi

Untuk integrasi Claude Desktop, server MCP Anda berjalan sebagai proses stdio lokal — konfigurasikan di claude_desktop_config.json. Untuk deployment tim atau multi-klien, jalankan server Anda sebagai endpoint HTTP+SSE di belakang nginx dengan TLS. Gunakan PM2 atau systemd untuk manajemen proses. Implementasikan health check, structured logging dengan request ID, dan rate limiting per pengguna yang terautentikasi.

## Apa yang Benar-benar Saya Deploy

Server MCP produksi untuk ERP dapat mengekspos alat untuk: mengquery pesanan penjualan dan faktur, memeriksa level inventaris, menjalankan query status persetujuan, dan menghasilkan ringkasan laporan. Server dapat berjalan di belakang reverse proxy nginx dengan TLS Let's Encrypt, diautentikasi melalui token JWT yang terhubung ke akun karyawan.

## Sumber & Bacaan Lanjutan

- Anthropic — Spesifikasi Model Context Protocol — https://modelcontextprotocol.io/docs
- Anthropic — MCP TypeScript SDK — https://github.com/modelcontextprotocol/typescript-sdk
- Anthropic — Dokumentasi Tool Use — https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview

## Source links

- https://modelcontextprotocol.io/docs
- https://github.com/modelcontextprotocol/typescript-sdk
- https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview

## FAQ

### Apa saja opsi transport yang didukung MCP, dan kapan sebaiknya memilih masing-masing?

MCP mendukung dua transport: stdio dan HTTP/SSE. Stdio digunakan untuk integrasi Claude Desktop lokal di mana server berjalan sebagai subproses di mesin pengguna. HTTP/SSE adalah pilihan tepat untuk deployment tim atau multi-klien — server dijalankan sebagai endpoint jarak jauh di belakang nginx dengan TLS agar banyak pengguna dapat terhubung.

### Mengapa artikel ini merekomendasikan penggunaan Zod untuk validasi skema alat?

Model AI sepenuhnya bergantung pada deskripsi JSON Schema Anda untuk memutuskan parameter apa yang dikirim saat memanggil alat. Deskripsi yang samar atau longgar menghasilkan tool call yang salah. Validasi Zod yang ketat memastikan server menegakkan bentuk yang diharapkan, dan artikel ini menyarankan agar deskripsi ditulis seolah menjelaskan kepada developer junior cerdas yang belum pernah melihat sistem Anda.

### Pendekatan autentikasi apa yang direkomendasikan artikel ini untuk server MCP jarak jauh?

Spesifikasi MCP merekomendasikan OAuth 2.0 dengan PKCE untuk autentikasi klien pada server jarak jauh. Untuk alat internal, pendekatan bearer token yang lebih sederhana bisa digunakan: lapisan middleware mengekstrak header Authorization, memvalidasi token terhadap database pengguna, dan melampirkan konteks pengguna sebelum handler alat dieksekusi — sehingga setiap tool call terbatas pada izin pengguna yang terautentikasi.

### Risiko keamanan apa yang perlu diketahui developer sebelum menjalankan server MCP secara lokal?

Server MCP lokal yang berjalan melalui stdio mewarisi izin penuh akun pengguna — ia dapat membaca file, mengeksekusi perintah, dan membuat permintaan jaringan. Server berbahaya, atau server yang sah yang dikompromikan melalui prompt injection tidak langsung, dapat menyalahgunakan izin tersebut secara diam-diam. Artikel ini menyarankan untuk selalu meninjau kode server MCP sebelum menginstalnya dan, untuk server produksi jarak jauh, menegakkan HTTPS serta menerapkan prinsip hak istimewa terkecil.

### Peningkatan produktivitas apa yang dapat diberikan server MCP pada ERP?

Server MCP dapat mengekspos alat untuk mengquery pesanan penjualan, faktur, level inventaris, status persetujuan, dan ringkasan laporan. Query seperti mencari faktur yang jatuh tempo untuk klien tertentu, yang biasanya memerlukan beberapa klik navigasi UI, dapat diselesaikan dalam satu giliran percakapan. Besarnya peningkatan bergantung pada seberapa banyak waktu tim Anda saat ini dihabiskan untuk bernavigasi di UI ERP.

---

- HTML version: https://www.matthewswong.com/id/blog/mcp-server-development-guide/
- English: https://www.matthewswong.com/en/blog/mcp-server-development-guide/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
