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 لدينا.

الخطوة 1: جهّز الخادم

استخدم خادم 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")
خطوات هذا الدليل بالترتيب: 1. MCP محلي أم بعيد؟؛ 2. جهّز الخادم؛ 3. شغّل الخادم؛ 4. شغّله كخدمة؛ 5. HTTPS والمصادقة؛ 6. قائمة تحقق للأمان
خطوات هذا الدليل بالترتيب.

الخطوة 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 تشغيل الشيفرة وقراءة البيانات، لذا لا تتركه مفتوحاً أبداً. ضعه خلف وكيل عكسي مع 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 واكشف الوكيل فقط.