آپ نے ایک MCP server لکھا۔ Locally یہ خوب چلتا ہے — آپ کا agent اسے کال کرتا، tools چلتے، سب کچھ جڑا۔ پھر آپ اپنا لیپ ٹاپ بند کرتے اور یہ چلا گیا۔ اگر آپ وہ server تب پہنچنے کے قابل چاہتے ہیں جب آپ کے agent کو چاہیے — ایک اور مشین سے، ایک ساتھی کے سیٹ اپ سے، رات 3 بجے ایک scheduled job سے — تو اسے کہیں رہنا ہوگا جو ہمیشہ آن ہو، ایک مستحکم ایڈریس اور HTTPS کے ساتھ۔ یہی ایک VPS کا کام ہے۔
یہ رہا اپنا MCP server اپنے لیپ ٹاپ سے ہٹا کر ایک ایسے باکس پر کیسے لے جائیں جسے آپ دراصل کنٹرول کرتے ہیں، محنت کہاں جاتی ہے اس پر ایماندار نوٹس کے ساتھ۔
Local بمقابلہ remote: "hosting" کا دراصل مطلب کیا ہے
MCP servers دو شکلوں میں آتے ہیں۔
ایک stdio server ایک local process کے طور پر چلتا اور اسی مشین پر ایک client سے standard input/output پر بات کرتا ہے۔ یہ آپ کے بنانے کے دوران بہترین ہے — لیکن اسے network پر کوئی چیز نہیں پہنچ سکتی۔
ایک remote server ایک URL پر HTTP (Server-Sent Events، یا نیا streamable-HTTP transport) بولتا ہے۔ کوئی بھی client جو URL جانتا اور درست credentials رکھتا ہو اسے کال کر سکتا ہے۔ اپنا MCP server host کرنے کا مطلب remote قسم کو کہیں public اور مستحکم چلانا ہے۔
بس اپنا لیپ ٹاپ tunnel کیوں نہ کریں
آپ تکنیکی طور پر ایک home مشین کو ایک tunnel سے expose کر سکتے ہیں، اور ایک فوری demo کے لیے یہ ٹھیک ہے۔ کسی ایسی چیز کے لیے جس پر آپ انحصار کرتے ہیں، آپ مشین کے مسائل وراثت میں لیتے ہیں: یہ سوتی ہے، آپ کا ISP آپ کا IP گھماتا ہے، آپ کا upload سست ہے، اور اب حقیقی tools سے بھرا ایک سروس آپ کے home network پر ہر چیز کے ساتھ بیٹھا ہے۔ ایک VPS آپ کو ایک مقررہ public IP، ایک حقیقی domain، مناسب uptime، اور isolation دیتا ہے۔ ماہانہ چند ڈالر میں یہ "میرے agent نے کنکشن کیوں کھویا" سوالات کی ایک پوری قسم مٹا دیتا ہے۔
stack، ٹھوس طور پر
ایک چھوٹا باکس چنیں۔ ایک MCP tool server زیادہ تر I/O ہے — یہ APIs، فائلوں، اور databases پر انتظار کرتا ہے؛ یہ بھاری ریاضی نہیں کرتا۔ 1–2 GB RAM زیادہ تر کے لیے کافی ہے۔ (جواب دینے کو ایک ماڈل inline چلانا ایک مختلف کہانی ہے — Ollama سے ایک LLM self-host دیکھیں۔)
اپنا server localhost سے bound چلائیں، مثلاً Node یا Python 127.0.0.1:3100 پر سنتا۔ اسے سیدھا public interface سے دور رکھیں — proxy وہ سنبھالتا ہے۔
سامنے ایک reverse proxy رکھیں تاکہ آپ کے domain پر TLS terminate ہو۔ Caddy اسے تقریباً چار لائنوں میں کرتا اور خودبخود ایک مفت certificate لیتا ہے:
mcp.yourdomain.com {
reverse_proxy 127.0.0.1:3100
}
mcp.yourdomain.com کو اپنے VPS IP پر لگائیں، Caddy reload کریں، اور آپ کا server https://mcp.yourdomain.com پر streamable-HTTP پر live ہے۔
اسے ہمیشہ آن رکھیں
ایک server جو پہلے کریش یا ری بوٹ پر مر جائے وہ "hosted" نہیں — یہ "ابھی کے لیے چل رہا" ہے۔ اسے ایک systemd unit میں لپیٹیں تاکہ یہ کریش پر restart ہو اور ایک ری بوٹ کے بعد واپس آئے:
[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 اور یہ حقیقتاً ہمیشہ آن ہے۔ (وہی پیٹرن کسی بھی agent یا bot کو 24/7 زندہ رکھتا ہے۔)
وہ حصہ جو لوگ مِس کرتے ہیں: آپ کو ایک پہنچنے کے قابل port چاہیے
ایک public MCP endpoint کو انٹرنیٹ سے پہنچنے کے قابل ایک inbound port — 443 — چاہیے۔ ایک NAT پلان پر آپ کو SSH کے لیے بالکل ایک forwarded port ملتا ہے اور کچھ نہیں؛ آپ 443 دنیا کو نہیں کھول سکتے۔ ایک public HTTPS MCP server host کرنے کو آپ کو ایک dedicated-IP پلان چاہیے، جہاں ہر port آپ کا ہے اور آپ ایک domain سیدھا باکس پر لگا سکتے ہیں۔ یہی "اسی لیپ ٹاپ پر میرا agent اسے پہنچ سکتا ہے" اور "کہیں بھی کوئی client اسے پہنچ سکتا ہے" کے بیچ فرق ہے۔
اسے لاک کریں — یہ مراعات والا ایک API ہے
ایک MCP server عموماً ایسے tools expose کرتا ہے جو کام کرتے ہیں: فائلیں پڑھنا، paid APIs مارنا، پیسہ منتقل کرنا۔ اسے کھلے انٹرنیٹ پر ننگا نہ رکھیں۔
- ہر call پر ایک token مانگیں۔ anonymous requests رد کریں؛ کوئی tool چلنے سے پہلے ایک bearer token یا API key چیک کریں۔
- 443 اور اپنے SSH port کے سوا ہر چیز firewall کریں۔
- صرف-keys SSH، کوئی password login نہیں۔ (یہ رہی دس-منٹ checklist۔)
endpoint کو وہی سمجھیں جو یہ ہے — حقیقی اختیار والا ایک API — اور زیادہ تر خطرہ چلا جاتا ہے۔
ایماندار حدود
- اب ops آپ کے ہیں۔ OS updates، process کو صحت مند رکھنا، logs دیکھنا۔ Caddy آپ کے لیے cert تجدید کرتا ہے، لیکن باقی آپ کا ہے۔ ایک managed cloud function اسے چھپاتا ہے؛ ایک VPS اسے آپ کو کنٹرول اور بہت کم بل کے بدلے دیتا ہے۔
- MCP spec ابھی بھی حرکت میں ہے۔ Transports اور auth پیٹرن release-سے-release بدلتے ہیں۔ اپنا SDK ورژن pin کریں اور اسے وقتاً فوقتاً اپ ڈیٹ کرنے کی توقع رکھیں۔
- ایک CPU باکس tool servers کے لیے درست ہے، ایک local ماڈل سے جوابات بنانے کے لیے نہیں۔ اگر آپ کا server جواب دینے کو ایک LLM چلائے، تو یہ ایک الگ، بھاری مشین ہے — Ollama گائیڈ دیکھیں۔
- کبھی ڈسٹرکٹو tools کو auth اور ایک تصدیقی قدم کے بغیر expose نہ کریں۔ ایک کھلا tool جو چیزیں مٹاتا ہے وہ بالآخر ایک ایسے bot سے ملے گا جو ہر چیز scan کرتا ہے۔
اس کے لیے ادائیگی
ایک ای میل سے sign up کریں اور USDC یا USDT میں ادا کریں — کوئی کارڈ، کوئی ID نہیں۔ اور اگر آپ اسے ایک agent کے لیے جوڑ رہے ہیں، تو اسی قسم کا باکس ہمارے اپنے MCP server پر programmatically آرڈر اور ادا کیا جا سکتا ہے — agent register کرتا، ایک بیلنس fund کرتا، اور خود آرڈر کرتا ہے۔
server ایک بار host کریں، اور آپ کے tools تب موجود ہوتے ہیں جب بھی agent ان تک پہنچے۔
تیار-شدہ سیٹ اپ: MCP servers کے لیے VPS دیکھیں — تجویز کردہ پلان اور ایک ایک-منٹ کرپٹو deploy۔
تبصرے
ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔