OffshoreVps
Tutorial6 Okt 20266 menit bacaOleh tim OffshoreVps

Cara Hosting Server MCP di VPS

Jalankan server Model Context Protocol jarak jauh: lokal versus jarak jauh, contoh Python, layanan systemd, HTTPS dengan token, dan daftar periksa keamanan.

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.

Jendela terminal di VPS yang menampilkan perintah untuk meng-host server MCP, diawali dengan “sudo adduser --disabled-password --gecos "" mcp”
Jenis perintah yang akan Anda jalankan di server dalam panduan ini.

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-langkah panduan ini secara berurutan: 1. MCP lokal atau jarak jauh?; 2. siapkan server; 3. jalankan server; 4. jalankan sebagai layanan; 5. HTTPS dan autentikasi; 6. Daftar periksa keamanan
Langkah-langkah dalam panduan ini, secara berurutan.

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.