OffshoreVps
آموزش‌ها6 اکتبر 20266 دقیقه مطالعهنوشته‌ی تیم OffshoreVps

چگونه یک سرور MCP را روی VPS میزبانی کنیم

یک سرور راه‌دور Model Context Protocol اجرا کنید: محلی در برابر راه‌دور، یک نمونه‌ی Python، سرویس systemd، HTTPS با توکن و یک چک‌لیست ایمنی.

Model Context Protocol (MCP) به دستیارهای هوش مصنوعی اجازه می‌دهد ابزارها را فراخوانی کنند و داده‌ها را از سرورهایی که شما اجرا می‌کنید بخوانند. بسیاری از سرورهای MCP محلی اجرا می‌شوند، اما سرور راه‌دور روی VPS وقتی مفید است که چند نفر، ابزار یا عامل باید قابلیت‌های یکسانی را به اشتراک بگذارند. این راهنما گزینه‌های راه‌اندازی و یک پایه امن را پوشش می‌دهد.

پنجره‌ی ترمینال روی یک VPS که دستورهای میزبانی سرور MCP را نشان می‌دهد، با «sudo adduser --disabled-password --gecos "" mcp» شروع می‌شود
نوع دستورهایی که در این راهنما روی سرور خود اجرا می‌کنید.

MCP محلی یا راه‌دور؟

  • محلی (stdio). کلاینت سرور را به‌عنوان فرایند فرزند روی ماشین خودتان اجرا می‌کند. ساده و خصوصی است، اما فقط روی همان ماشین کار می‌کند.
  • راه‌دور (HTTP). سرور روی VPS اجرا می‌شود و کلاینت‌ها از طریق HTTPS متصل می‌شوند. این همان چیزی است که شما میزبانی می‌کنید. برای ابزارهای مشترک، کارهای طولانی و ابزارهایی که IP ثابت لازم دارند مناسب است.

مشخصات فعلی MCP را برای انتقالی که کلاینت شما پشتیبانی می‌کند بررسی کنید. Streamable HTTP انتخاب معمول برای سرورهای راه‌دور است. اندازه‌های مناسب بارهای کاری رایج در صفحه هاستینگ سرور MCP ما آمده است.

گام ۱: آماده‌سازی سرور

از یک سرور تازه Ubuntu LTS و مراحل چگونه یک VPS جدید را امن کنیم استفاده کنید. برای سرویس یک کاربر بسازید.

sudo adduser --disabled-password --gecos "" mcp

مرحله 2: سرور را اجرا کنید

از SDK رسمی یا یک سرور موجود استفاده کنید. این مثال Python از کمک‌کننده FastMCP در MCP SDK استفاده می‌کند:

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")
گام‌های این راهنما به ترتیب: ۱. MCP محلی یا راه‌دور؟؛ ۲. آماده‌سازی سرور؛ ۳. اجرای سرور؛ ۴. اجرا به‌عنوان سرویس؛ ۵. HTTPS و احراز هویت؛ ۶. چک‌لیست ایمنی
گام‌های این راهنما به ترتیب.

مرحله 3: آن را به‌صورت سرویس اجرا کنید

[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

آن را با نام /etc/systemd/system/mcp.service ذخیره کنید و sudo systemctl enable --now mcp را اجرا کنید.

مرحله 4: HTTPS و احراز هویت

سرور MCP می‌تواند کد اجرا کند و داده بخواند، پس هرگز آن را باز رها نکنید. آن را پشت reverse proxy با TLS بگذارید و توکن را الزامی کنید:

mcp.example.com {
  @noauth not header Authorization "Bearer YOUR_LONG_RANDOM_TOKEN"
  respond @noauth 401
  reverse_proxy 127.0.0.1:8000
}

برای راه‌اندازی تولیدی، به جای یک توکن مشترک، از OAuth همان‌طور که در مشخصات احراز هویت MCP آمده استفاده کنید.

فهرست ایمنی

  • به ابزارها کمترین دسترسی موردنیازشان را بدهید. به ابزار دسترسی shell ندهید مگر اینکه هدف همین باشد.
  • رازها را در فایل‌های محیطی با chmod 600 نگه دارید.
  • فراخوانی ابزارها را لاگ کنید تا ببینید چه اتفاقی افتاده.
  • پورت را به 127.0.0.1 متصل نگه دارید و فقط پراکسی را در معرض بگذارید.