گرمای تابستان — همه‌چیز آب می‌شود، حتی قیمت‌های ما.−25%−۲۵٪ روی هر پلن سالانه، تا ۳۱ اوتدیدن پلن‌ها
EQVPS

میزبانی سرور MCP خودتان روی VPS

14 تیر 1405 · 5 دقیقه مطالعه · EQVPS Team

شما یک سرور MCP نوشتید. به‌صورت محلی خوب کار می‌کند — عامل‌تان آن را فراخوانی می‌کند، ابزارها شلیک می‌شوند، همه‌چیز سیم‌کشی شده است. بعد لپ‌تاپ‌تان را می‌بندید و از بین می‌رود. اگر می‌خواهید آن سرور هر وقت عامل‌تان لازمش داشت در دسترس باشد — از یک ماشین دیگر، از راه‌اندازی یک هم‌تیمی، از یک کار زمان‌بندی‌شده در ساعت ۳ بامداد — باید جایی زندگی کند که همیشه فعال است، با یک آدرس پایدار و HTTPS. VPS دقیقاً برای همین است.

اینجا می‌بینید چطور سرور MCP خود را از لپ‌تاپ‌تان به سروری که واقعاً کنترلش می‌کنید منتقل کنید، همراه با نکات صادقانه درباره اینکه تلاش کجا صرف می‌شود.

محلی در برابر راه‌دور: «میزبانی» واقعاً یعنی چه

سرورهای MCP در دو شکل می‌آیند.

یک سرور stdio به‌صورت یک فرایند محلی اجرا می‌شود و با یک کلاینت روی همان ماشین از طریق ورودی/خروجی استاندارد صحبت می‌کند. برای زمانی که در حال ساخت هستید عالی است — اما هیچ چیزی در سراسر شبکه نمی‌تواند به آن برسد.

یک سرور راه‌دور از طریق یک URL با HTTP صحبت می‌کند (‏Server-Sent Events، یا transport جدیدتر streamable-HTTP). هر کلاینتی که URL را بداند و اعتبارنامه درست را داشته باشد می‌تواند آن را فراخوانی کند. میزبانی سرور MCP خودتان یعنی اجرای نوع راه‌دور در جایی عمومی و پایدار.

چرا فقط لپ‌تاپ‌تان را تونل نکنیم

از نظر فنی می‌توانید یک ماشین خانگی را با یک تونل در معرض دید بگذارید، و برای یک دمو سریع اشکالی ندارد. اما برای هر چیزی که به آن تکیه می‌کنید، مشکلات آن ماشین را به ارث می‌برید: می‌خوابد، ‏ISP شما IP‌تان را می‌چرخاند، آپلودتان کند است، و حالا یک سرویس پر از ابزارهای واقعی روی شبکه خانگی شما کنار هر چیز دیگری نشسته است. یک VPS به شما یک IP عمومی ثابت، یک دامنه واقعی، آپ‌تایم درست و ایزوله‌سازی می‌دهد. در برابر چند دلار در ماه، یک دسته کامل از پرسش‌های «چرا عامل من اتصال را از دست داد» را حذف می‌کند.

پشته فناوری، به‌طور مشخص

یک سرور کوچک انتخاب کنید. یک سرور ابزار MCP بیشتر I/O است — منتظر APIها، فایل‌ها و پایگاه‌داده‌ها می‌ماند؛ ریاضیات سنگین انجام نمی‌دهد. ۱ تا ۲ گیگابایت RAM برای بیشترشان کافی است. (اجرای یک مدل به‌صورت درون‌خطی برای پاسخ، داستان دیگری است — خودمیزبانی یک LLM با Ollama را ببینید.)

سرورتان را متصل به localhost اجرا کنید، مثلاً Node یا Python که روی 127.0.0.1:3100 گوش می‌دهد. آن را مستقیم روی رابط عمومی نگذارید — پروکسی این را مدیریت می‌کند.

یک reverse proxy جلویش بگذارید تا TLS را روی دامنه‌تان terminate کند. Caddy این کار را در حدود چهار خط انجام می‌دهد و به‌طور خودکار یک گواهی رایگان می‌گیرد:

mcp.yourdomain.com {
    reverse_proxy 127.0.0.1:3100
}

mcp.yourdomain.com را به IP سرور VPS خود اشاره دهید، ‏Caddy را دوباره بارگذاری کنید، و سرورتان روی https://mcp.yourdomain.com از طریق streamable-HTTP آنلاین است.

آن را همیشه فعال نگه دارید

سروری که در اولین کرش یا ری‌بوت می‌میرد «میزبانی‌شده» نیست — «فعلاً در حال اجراست». آن را در یک unit از systemd بپیچید تا در صورت کرش دوباره اجرا شود و بعد از ری‌بوت برگردد:

[Unit]
Description=My MCP server
After=network.target

[Service]
ExecStart=/usr/bin/node /opt/mcp/server.js
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target

systemctl enable --now my-mcp و واقعاً همیشه فعال است. (همین الگو هر عامل یا رباتی را به‌صورت شبانه‌روزی زنده نگه می‌دارد.)

بخشی که مردم از قلم می‌اندازند: به یک پورت در دسترس نیاز دارید

یک endpoint عمومی MCP به یک پورت ورودی نیاز دارد — ۴۴۳ — که از اینترنت در دسترس باشد. روی یک پلن NAT دقیقاً یک پورت فوروارد‌شده برای SSH می‌گیرید و هیچ چیز دیگر؛ نمی‌توانید ۴۴۳ را به دنیا باز کنید. برای میزبانی یک سرور عمومی HTTPS از نوع MCP، یک پلن با IP اختصاصی می‌خواهید، که در آن همه پورت‌ها مال شماست و می‌توانید یک دامنه را مستقیم به سرور اشاره دهید. این تفاوت میان «عامل من روی همان لپ‌تاپ می‌تواند به آن برسد» و «هر کلاینتی در هر جا می‌تواند» است.

آن را محکم کنید — این یک API با اختیارات است

یک سرور MCP معمولاً ابزارهایی را ارائه می‌دهد که کارهایی انجام می‌دهند: فایل‌ها را می‌خوانند، به APIهای پولی می‌زنند، پول جابه‌جا می‌کنند. آن را لخت روی اینترنت باز نگذارید.

با endpoint مثل چیزی که هست رفتار کنید — یک API با اختیار واقعی — و بیشتر خطر از میان می‌رود.

محدودیت‌های صادقانه

پرداخت آن

با یک ایمیل ثبت‌نام کنید و با USDC یا USDT پرداخت کنید — بدون کارت، بدون مدرک شناسایی. و اگر دارید این را برای یک عامل سیم‌کشی می‌کنید، همان نوع سرور را می‌توان به‌صورت برنامه‌ای از طریق سرور MCP خودمان سفارش داد و پرداخت کرد — عامل ثبت‌نام می‌کند، یک موجودی شارژ می‌کند و خودش سفارش می‌دهد.

سرور را یک بار میزبانی کنید، و ابزارهایتان هر وقت عامل سراغشان برود آنجا هستند.


راه‌اندازی آماده: VPS برای سرورهای MCP را ببینید — پلن پیشنهادی و یک استقرار رمزارزی یک‌دقیقه‌ای.

سؤالات متداول

آیا برای میزبانی یک سرور MCP به IP اختصاصی نیاز دارم؟

برای یک endpoint عمومی HTTPS، بله. پلن‌های NAT یک پورت SSH را فوروارد می‌کنند و پورت ۴۴۳ را به اینترنت نشان نمی‌دهند. یک پلن با IP اختصاصی همه پورت‌ها و یک دامنه را به شما می‌دهد که می‌توانید مستقیم به سرور اشاره دهید.

stdio یا HTTP — کدام transport را میزبانی کنم؟

HTTP (‏SSE یا streamable-HTTP جدیدتر). یک سرور stdio فقط با یک کلاینت روی همان ماشین صحبت می‌کند؛ هر چیزی که می‌خواهید از طریق شبکه در دسترس باشد باید HTTP پشت یک URL صحبت کند.

آیا یک VPS می‌تواند چند سرور MCP را اجرا کند؟

بله. هر سرور را به یک پورت محلی متفاوت متصل کنید و به هرکدام زیردامنه خودش را در reverse proxy بدهید. RAM محدودیت عملی است، و سرورهای ابزار مقدار بسیار کمی از آن استفاده می‌کنند.

یک سرور MCP به چقدر RAM نیاز دارد؟

معمولاً کم. یک سرور ابزار محدود به I/O است — منتظر APIها و پایگاه‌داده‌ها می‌ماند به جای اینکه اعداد را خرد کند، پس ۱ تا ۲ گیگابایت از پس بیشترشان برمی‌آید. اجرای یک مدل برای تولید پاسخ‌ها کاری جدا و بسیار سنگین‌تر است.

← بازگشت به وبلاگ← پلن‌ها و قیمت‌ها

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.