Model Context Protocol (MCP) memungkinkan asisten AI memanggil alat dan membaca data dari server yang Anda jalankan. Banyak server MCP berjalan secara lokal, tetapi server jarak jauh di VPS berguna ketika beberapa orang, alat, atau agen perlu berbagi kemampuan yang sama. Panduan ini membahas pilihan penyiapan dan dasar yang aman.
MCP lokal atau jarak jauh?
- Lokal (stdio). Klien menjalankan server sebagai proses anak di mesin Anda sendiri. Sederhana dan privat, tetapi hanya berfungsi di mesin itu.
- Jarak jauh (HTTP). Server berjalan di VPS dan klien terhubung melalui HTTPS. Inilah yang Anda host. Cocok untuk alat bersama, pekerjaan yang berjalan lama, dan alat yang memerlukan IP tetap.
Periksa spesifikasi MCP terkini untuk transport yang didukung klien Anda. Streamable HTTP adalah pilihan umum untuk server jarak jauh. Ukuran untuk beban kerja umum ada di halaman hosting server MCP kami.
Langkah 1: siapkan server
Gunakan server Ubuntu LTS baru dan langkah-langkah dalam cara mengamankan VPS baru. Buat pengguna untuk layanan.
sudo adduser --disabled-password --gecos "" mcp
Langkah 2: jalankan server
Gunakan SDK resmi atau server yang sudah ada. Contoh Python ini memakai helper FastMCP dari SDK MCP:
sudo -iu mcp
python3 -m venv ~/venv && . ~/venv/bin/activate
pip install "mcp[cli]"
# server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo", host="127.0.0.1", port=8000)
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
if __name__ == "__main__":
mcp.run(transport="streamable-http")
Langkah 3: jalankan sebagai layanan
[Unit]
Description=MCP server
After=network-online.target
[Service]
User=mcp
WorkingDirectory=/home/mcp
ExecStart=/home/mcp/venv/bin/python server.py
Restart=always
[Install]
WantedBy=multi-user.target
Simpan sebagai /etc/systemd/system/mcp.service dan jalankan sudo systemctl enable --now mcp.
Langkah 4: HTTPS dan autentikasi
Server MCP dapat menjalankan kode dan membaca data, jadi jangan pernah membiarkannya terbuka. Letakkan di belakang reverse proxy dengan TLS dan wajibkan token:
mcp.example.com {
@noauth not header Authorization "Bearer YOUR_LONG_RANDOM_TOKEN"
respond @noauth 401
reverse_proxy 127.0.0.1:8000
}
Untuk setup produksi, gunakan OAuth seperti dijelaskan di spesifikasi otorisasi MCP, bukan satu token bersama.
Daftar periksa keamanan
- Beri alat akses sesedikit mungkin yang dibutuhkan. Jangan beri alat akses shell kecuali memang itu tujuannya.
- Simpan rahasia di file environment dengan
chmod 600. - Catat panggilan alat agar Anda bisa melihat apa yang terjadi.
- Biarkan port terikat ke 127.0.0.1 dan hanya buka proksinya.