Model Context Protocol (MCP) به دستیارهای هوش مصنوعی اجازه میدهد ابزارها را فراخوانی کنند و دادهها را از سرورهایی که شما اجرا میکنید بخوانند. بسیاری از سرورهای MCP محلی اجرا میشوند، اما سرور راهدور روی VPS وقتی مفید است که چند نفر، ابزار یا عامل باید قابلیتهای یکسانی را به اشتراک بگذارند. این راهنما گزینههای راهاندازی و یک پایه امن را پوشش میدهد.
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")
مرحله 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 متصل نگه دارید و فقط پراکسی را در معرض بگذارید.