Model Context Protocol (MCP) AI असिस्टेंट को आपके चलाए सर्वरों से टूल कॉल करने और डेटा पढ़ने देता है। कई MCP सर्वर स्थानीय रूप से चलते हैं, लेकिन VPS पर रिमोट सर्वर तब उपयोगी होता है जब कई लोगों, टूल्स या एजेंटों को वही क्षमताएँ साझा करनी हों। यह गाइड सेटअप के विकल्प और एक सुरक्षित आधार रेखा बताती है।
स्थानीय या रिमोट MCP?
- स्थानीय (stdio)। क्लाइंट सर्वर को आपकी अपनी मशीन पर चाइल्ड प्रोसेस के रूप में शुरू करता है। सरल और निजी, लेकिन केवल उसी मशीन पर काम करता है।
- रिमोट (HTTP)। सर्वर VPS पर चलता है और क्लाइंट HTTPS से जुड़ते हैं। यही आप होस्ट करते हैं। यह साझा टूल्स, लंबे चलने वाले जॉब और निश्चित IP चाहने वाले टूल्स के लिए उपयुक्त है।
अपने क्लाइंट द्वारा समर्थित ट्रांसपोर्ट के लिए मौजूदा MCP विनिर्देश देखें। रिमोट सर्वरों के लिए आमतौर पर Streamable HTTP चुना जाता है। सामान्य वर्कलोड के आकार हमारे MCP सर्वर होस्टिंग पेज पर हैं।
चरण 1: सर्वर तैयार करें
नया Ubuntu LTS सर्वर इस्तेमाल करें और नए VPS को सुरक्षित कैसे करें के चरण अपनाएँ। सेवा के लिए एक उपयोगकर्ता बनाएँ।
sudo adduser --disabled-password --gecos "" mcp
चरण 2: सर्वर चलाएँ
आधिकारिक SDK या मौजूदा सर्वर इस्तेमाल करें। यह Python उदाहरण MCP SDK के FastMCP हेल्पर का उपयोग करता है:
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 सर्वर कोड चला सकता है और डेटा पढ़ सकता है, इसलिए उसे कभी खुला न छोड़ें। उसे TLS वाले रिवर्स प्रॉक्सी के पीछे रखें और टोकन अनिवार्य करें:
mcp.example.com {
@noauth not header Authorization "Bearer YOUR_LONG_RANDOM_TOKEN"
respond @noauth 401
reverse_proxy 127.0.0.1:8000
}
प्रोडक्शन सेटअप के लिए, एक साझा टोकन के बजाय MCP authorization spec में बताए अनुसार OAuth इस्तेमाल करें।
सुरक्षा चेकलिस्ट
- टूल्स को कम से कम आवश्यक पहुँच दें। जब तक वही मक़सद न हो, किसी टूल को शेल एक्सेस न दें।
- गुप्त जानकारी
chmod 600वाली एनवायरनमेंट फ़ाइलों में रखें। - टूल कॉल लॉग करें ताकि आप देख सकें क्या हुआ।
- पोर्ट को 127.0.0.1 से बाँधे रखें और केवल प्रॉक्सी को उजागर करें।