شما یک سرور 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های پولی میزنند، پول جابهجا میکنند. آن را لخت روی اینترنت باز نگذارید.
- در هر فراخوان یک توکن بخواهید. درخواستهای ناشناس را رد کنید؛ پیش از اجرای هر ابزاری یک bearer token یا کلید API را بررسی کنید.
- همهچیز بهجز ۴۴۳ و پورت SSH خود را با فایروال ببندید.
- SSH فقط با کلید، بدون ورود با رمز. (چکلیست دهدقیقهای اینجاست.)
با endpoint مثل چیزی که هست رفتار کنید — یک API با اختیار واقعی — و بیشتر خطر از میان میرود.
محدودیتهای صادقانه
- حالا عملیات مال شماست. بهروزرسانیهای سیستمعامل، سالم نگهداشتن فرایند، تماشای لاگها. Caddy گواهی را برایتان تمدید میکند، اما بقیهاش با شماست. یک تابع ابری مدیریتشده این را پنهان میکند؛ یک VPS آن را در ازای کنترل و صورتحسابی بسیار پایینتر به شما میسپارد.
- مشخصات MCP هنوز در حال حرکت است. transportها و الگوهای احراز هویت از یک نسخه به نسخه بعد تغییر میکنند. نسخه SDK خود را pin کنید و انتظار داشته باشید که هرازگاهی بهروزش کنید.
- یک سرور CPU محور برای سرورهای ابزار مناسب است، نه برای تولید پاسخ با یک مدل محلی. اگر سرور شما یک LLM را برای پاسخدادن اجرا میکند، این یک ماشین جدا و سنگینتر است — راهنمای Ollama را ببینید.
- هرگز ابزارهای مخرب را بدون احراز هویت و یک گام تأیید در معرض دید نگذارید. یک ابزار باز که چیزها را حذف میکند سرانجام به رباتی برخورد میکند که همهچیز را اسکن میکند.
پرداخت آن
با یک ایمیل ثبتنام کنید و با USDC یا USDT پرداخت کنید — بدون کارت، بدون مدرک شناسایی. و اگر دارید این را برای یک عامل سیمکشی میکنید، همان نوع سرور را میتوان بهصورت برنامهای از طریق سرور MCP خودمان سفارش داد و پرداخت کرد — عامل ثبتنام میکند، یک موجودی شارژ میکند و خودش سفارش میدهد.
سرور را یک بار میزبانی کنید، و ابزارهایتان هر وقت عامل سراغشان برود آنجا هستند.
راهاندازی آماده: VPS برای سرورهای MCP را ببینید — پلن پیشنهادی و یک استقرار رمزارزی یکدقیقهای.
نظرات
هنوز نظری نیست. اولین نفر باشید.