EQVPS

Свой MCP-сервер на VPS — чтобы работал всегда

Jul 5, 2026 · 4 min read · EQVPS Team

Вы написали MCP-сервер. Локально всё хорошо — агент его дёргает, инструменты срабатывают, всё связано. А потом вы закрываете ноутбук, и его нет. Если сервер должен быть доступен в любой момент, когда он нужен агенту — с другой машины, из чужого сетапа, по расписанию в три часа ночи — он должен жить там, где всегда включено, со стабильным адресом и HTTPS. Для этого и нужен VPS.

Ниже — как перенести MCP-сервер с ноутбука на машину, которой вы реально управляете, и честно про то, куда уходят силы.

stdio против remote: что значит «хостить»

MCP-серверы бывают двух видов.

stdio-сервер работает как локальный процесс и общается с клиентом на той же машине через стандартный ввод/вывод. Пока вы разрабатываете — идеально. Но по сети до него не достучаться.

Remote-сервер говорит по HTTP (Server-Sent Events или новый транспорт streamable-HTTP) через URL. Любой клиент, который знает адрес и держит нужные креды, может его вызвать. Хостить свой MCP-сервер — значит запустить именно remote-вариант где-то публично и стабильно.

Почему не тоннель с ноутбука

Технически домашнюю машину можно выставить наружу тоннелем, и для быстрой демки этого хватит. Но во всём, на что вы полагаетесь всерьёз, вы получаете её проблемы: она уходит в сон, провайдер меняет IP, аплоад медленный, а теперь ещё и сервис с боевыми инструментами висит в домашней сети рядом со всем остальным. VPS даёт фиксированный публичный IP, нормальный домен, реальный аптайм и изоляцию. За пару долларов в месяц это убирает целый класс вопросов «почему у агента отвалилось соединение».

Стек по шагам

Возьмите маленькую машину. MCP tool-сервер — это в основном I/O: он ждёт API, файлы, базы, а не молотит числа. 1–2 ГБ оперативки хватает большинству. (Гонять модель внутри, чтобы отвечать, — другая история, см. self-hosting LLM с Ollama.)

Запустите сервер на localhost — например, Node или Python на 127.0.0.1:3100. Наружу напрямую его не выставляйте, этим займётся прокси.

Поставьте перед ним reverse-proxy, чтобы терминировать TLS на вашем домене. Caddy делает это примерно в четыре строки и сам получает бесплатный сертификат:

mcp.yourdomain.com {
    reverse_proxy 127.0.0.1:3100
}

Направьте mcp.yourdomain.com на IP вашего VPS, перезагрузите Caddy — и сервер живёт на https://mcp.yourdomain.com по streamable-HTTP.

Чтобы работал всегда

Сервер, который умирает при первом краше или перезагрузке, — это не «захостили», это «пока работает». Заверните его в 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 — и он по-настоящему всегда включён. (Тот же приём держит любого агента или бота 24/7.)

То, что упускают: нужен доступный порт

Публичному MCP-эндпоинту нужен входящий порт — 443 — доступный из интернета. На NAT-тарифе у вас ровно один проброшенный порт под SSH и ничего больше; открыть 443 наружу не получится. Чтобы хостить публичный HTTPS MCP-сервер, нужен тариф с выделенным IP, где все порты ваши и домен направляется прямо на машину. Это и есть разница между «мой агент на том же ноутбуке достаёт до него» и «любой клиент откуда угодно».

Закройте его — это API с правами

MCP-сервер обычно даёт инструменты, которые что-то делают: читают файлы, дёргают платные API, двигают деньги. Голым в открытый интернет это выставлять нельзя.

Относитесь к эндпоинту как к тому, чем он и является — API с реальными полномочиями, — и большая часть риска уходит.

Честные ограничения

Как платить

Регистрация по email, оплата в USDC или USDT — без карты и без документов. А если вы поднимаете это для агента, такую же машину можно заказать и оплатить программно через наш собственный MCP-сервер: агент регистрируется, пополняет баланс и заказывает сам.

Захостите сервер один раз — и ваши инструменты на месте всякий раз, когда за ними тянется агент.

FAQ

Нужен ли выделенный IP, чтобы хостить MCP-сервер?

Для публичного HTTPS-эндпоинта — да. На NAT-тарифе проброшен ровно один порт под SSH, а порт 443 наружу не открыть. Тариф с выделенным IP даёт все порты и домен, который можно направить прямо на машину.

stdio или HTTP — какой транспорт хостить?

HTTP (SSE или новый streamable-HTTP). stdio-сервер общается только с клиентом на той же машине; всё, что должно быть доступно по сети, работает по HTTP за URL.

Можно ли держать несколько MCP-серверов на одном VPS?

Да. Повесьте каждый на свой локальный порт и дайте каждому свой поддомен в reverse-proxy. Ограничение — оперативка, а tool-серверы её почти не едят.

Сколько оперативки нужно MCP-серверу?

Обычно мало. Tool-сервер — это I/O: он ждёт ответа от API и баз, а не считает. 1–2 ГБ хватает большинству. Запускать модель, которая сама генерит ответы, — это отдельная и куда более тяжёлая задача.

← Back to blogSee plans & pricing →