MCP-сервер на VPS: как подключить Cursor и автоматизировать работу с ИИ

Представьте, что Cursor не просто пишет программный код, а может самостоятельно проверить состояние вашего сервера, получить данные из базы, изучить логи приложения или запустить тесты. При этом не нужно каждый раз копировать информацию в чат или переключаться между несколькими программами. Необходимые инструменты доступны AI-агенту непосредственно во время работы.

Такую возможность предоставляет Model Context Protocol (MCP) — открытый стандарт взаимодействия AI-приложений с внешними системами. Он позволяет подключать к нейросетям файловые хранилища, базы данных, API и собственные программные инструменты.

Для небольших задач MCP-сервер можно запустить непосредственно на компьютере. Но если требуется общий доступ для команды, интеграция с серверными приложениями или постоянно доступный сервис, удобнее использовать VPS.

Разберёмся, как работает MCP, когда для него действительно нужен виртуальный сервер и как подключить собственный MCP-инструмент к Cursor. В качестве примера используем VPS на Ubuntu и небольшой Python-сервис, который позволяет AI-агенту получать информацию о состоянии диска.

Что такое MCP и как он работает

MCP (Model Context Protocol) — открытый протокол, который стандартизирует обмен данными и вызов инструментов между AI-приложениями и внешними сервисами.

Его можно сравнить с универсальным интерфейсом подключения. Вместо того чтобы разрабатывать отдельную интеграцию для каждой языковой модели, создатель инструмента реализует MCP-сервер, через который совместимые AI-приложения получают доступ к необходимым возможностям.

Например, разработчик использует Cursor для сопровождения веб-приложения. Чтобы выяснить причину ошибки, ему необходимо проверить последние изменения в Git, изучить серверные логи и посмотреть состояние базы данных.

Без интеграций эти действия обычно выполняются вручную. Разработчик открывает терминал, собирает информацию и передаёт её нейросети.

С MCP часть этого процесса можно автоматизировать. Cursor получает список доступных инструментов, выбирает подходящий и вызывает его с необходимыми параметрами. Результат возвращается в AI-приложение и используется для дальнейшего анализа.

При этом MCP не выполняет функции самой языковой модели. Он определяет, каким образом внешние системы предоставляют данные и операции, а решение об использовании инструментов принимает AI-приложение в рамках своих настроек и разрешений.

Из чего состоит MCP

В архитектуре MCP участвуют три основных компонента.

MCP Host — приложение, в котором работает пользователь. Например, Cursor или Claude Code. Оно управляет взаимодействием с моделью и подключёнными инструментами.

MCP Client — компонент внутри AI-приложения, устанавливающий соединение с конкретным MCP-сервером и обеспечивающий обмен сообщениями.

MCP Server — программа, предоставляющая определённые возможности. Она может обращаться к API, выполнять разрешённые операции, получать сведения из базы данных или работать с файлами.

Сам MCP-сервер не обязательно должен быть сложным. Иногда он содержит всего несколько функций, например получение статуса сайта или информации о свободном месте на диске.

Протокол также различает инструменты (tools), ресурсы (resources) и шаблоны запросов (prompts). Инструменты позволяют выполнять действия, ресурсы предоставляют данные, а шаблоны помогают организовать типовые сценарии взаимодействия.

Это делает MCP полезным не только для генерации программного кода, но и для построения специализированных AI-инструментов под конкретные рабочие задачи.

Зачем размещать MCP-сервер на VPS

Локальный MCP-сервер подходит для экспериментов и индивидуальной разработки. Например, если нужно предоставить Cursor доступ к определённой папке на компьютере или подключить инструмент для обработки файлов.

Однако такой подход не всегда удобен для постоянно используемых интеграций. Локальные инструменты зависят от устройства пользователя, а доступ к корпоративным сервисам может требовать сложной настройки на каждом рабочем месте.

Размещение MCP-сервера на VPS позволяет вынести инструменты и их серверные зависимости в отдельное управляемое окружение.

Это особенно полезно, когда MCP взаимодействует с приложениями, которые уже работают на сервере: базой данных, системой мониторинга, API или фоновыми процессами.

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

Для таких задач подходит VPS для вайбкодинга JustVibe. Сервис предоставляет виртуальный сервер с root-доступом, Docker-ready окружением и сценариями настройки инфраструктуры с помощью Cursor, Claude Code и Codex.

Преимущество собственного VPS заключается в возможности самостоятельно выбирать технологии, управлять разрешениями и размещать несколько взаимосвязанных сервисов.

Но есть важное ограничение. Если MCP-сервер постоянно доступен на VPS, это ещё не означает, что AI-агент самостоятельно выполняет задачи круглосуточно. Для регулярных действий потребуется отдельно организовать запуск агента, расписание или другой механизм автоматизации.

Локальный MCP или удалённый: что выбрать

При выборе архитектуры важно учитывать не только место размещения, но и способ подключения.

Для локальных MCP-серверов обычно используется транспорт stdio. AI-приложение запускает программу как отдельный процесс и обменивается с ней сообщениями через стандартные потоки ввода и вывода.

Для удалённых сервисов предназначен Streamable HTTP. В этом случае MCP-сервер предоставляет HTTP-адрес, через который авторизованные клиенты обращаются к его инструментам.

Ранее для удалённого взаимодействия применялся транспорт HTTP+SSE. Он сохраняется в некоторых реализациях ради совместимости, но для новых проектов рекомендуется ориентироваться на Streamable HTTP.

Существует и промежуточный вариант: запуск MCP-процесса на VPS через SSH. Для Cursor это может выглядеть как локальное stdio-подключение, хотя сама программа выполняется на удалённом сервере.

Такой способ удобен для личных инструментов администрирования, поскольку не требует открывать публичный HTTP-интерфейс.

Какой VPS нужен для MCP-сервера

super-pc

Распространённое заблуждение заключается в том, что для работы MCP обязательно нужны мощный процессор, большой объём оперативной памяти или GPU.

На практике требования определяются задачами, которые выполняет сервер.

Простой MCP-инструмент, обращающийся к GitHub API или получающий сведения из базы данных, обычно не выполняет вычисления языковой модели. Он принимает запрос, вызывает необходимую функцию и возвращает результат. Поэтому для него не требуется отдельный графический ускоритель.

Для небольшого количества таких инструментов можно начать с VPS с 1–2 vCPU и 2 ГБ RAM. Это ориентир для простых сценариев, а не универсальное требование протокола.

Если MCP-сервер одновременно запускает браузерную автоматизацию, обрабатывает большие документы или работает вместе с несколькими приложениями и базами данных, нагрузка будет выше. В таком случае потребуется дополнительная оперативная память и вычислительные ресурсы.

GPU имеет смысл рассматривать при локальном запуске нейросетевой модели или других вычислений, которые действительно используют графический ускоритель.

Не менее важны технические возможности сервера: доступ по SSH, поддержка контейнеров, возможность устанавливать библиотеки и контролировать сетевые подключения.

Для рабочих проектов желательно выбирать конфигурацию с запасом ресурсов и возможностью дальнейшего масштабирования.

Как развернуть MCP-сервер на VPS и подключить его к Cursor

Рассмотрим практический пример. Создадим MCP-сервер, который предоставляет одну функцию — получение информации о свободном месте на диске VPS.

После подключения Cursor сможет самостоятельно вызвать этот инструмент и использовать полученные данные в ответе пользователю.

Для примера понадобятся VPS на Ubuntu 24.04, Python 3.10 или новее, SSH-доступ и установленный Cursor.

Мы будем использовать официальный Python SDK для MCP версии 2.x. В этой версии класс FastMCP, встречающийся во многих старых инструкциях, заменён на MCPServer.

Шаг 1. Подключитесь к VPS и подготовьте Python

Откройте терминал на своём компьютере и подключитесь к серверу:

ssh USER@SERVER_IP

Здесь USER — имя пользователя сервера, а SERVER_IP — его IP-адрес.

Для постоянной работы рекомендуется использовать отдельную учётную запись без избыточных привилегий и настроить авторизацию по SSH-ключу.

После подключения обновите сведения о системных пакетах и установите необходимый компонент Python:

sudo apt update
sudo apt install -y python3-venv

Создадим каталог для нашего MCP-сервера:

mkdir -p ~/mcp-tools
cd ~/mcp-tools

Теперь подготовим изолированное Python-окружение:

python3 -m venv .venv

Установим официальный SDK:

.venv/bin/pip install "mcp>=2,<3"

Изолированное окружение позволяет устанавливать зависимости MCP-сервера независимо от системных Python-пакетов и других проектов на VPS.

Для production-окружения после проверки совместимости рекомендуется зафиксировать конкретные версии зависимостей, чтобы обновления не приводили к неожиданным изменениям поведения.

Шаг 2. Создайте собственный MCP-инструмент

В каталоге mcp-tools создайте файл server.py.

Добавьте следующий код:

import shutil
from mcp.server import MCPServer

mcp = MCPServer("VPS Monitor")


@mcp.tool()
def disk_status() -> dict[str, float]:
    """Показывает использование диска VPS."""
    total, used, free = shutil.disk_usage("/")

    return {
        "total_gb": round(total / 1024**3, 2),
        "used_gb": round(used / 1024**3, 2),
        "free_gb": round(free / 1024**3, 2),
    }


if __name__ == "__main__":
    mcp.run(transport="stdio")

Разберём, что здесь происходит.

MCPServer("VPS Monitor") создаёт MCP-сервер с собственным именем.

Декоратор @mcp.tool() регистрирует функцию disk_status как инструмент, доступный подключённому MCP-клиенту.

Функция использует стандартную библиотеку Python для получения сведений о диске и возвращает объём свободного и занятого пространства в гигабайтах.

Наконец, mcp.run(transport="stdio") запускает сервер с обменом сообщениями через стандартные потоки.

Обратите внимание: инструмент не изменяет файлы и не выполняет административные команды. Для первого знакомства с MCP это удобнее, чем сразу предоставлять AI-агенту возможность управлять сервером.

Шаг 3. Настройте подключение в Cursor

Теперь необходимо сообщить Cursor, как запускать MCP-сервер на VPS.

Для этого используется конфигурационный файл mcp.json.

Если инструмент должен быть доступен во всех проектах Cursor, его можно добавить в глобальную конфигурацию:

~/.cursor/mcp.json

На Windows такой файл находится в каталоге .cursor домашней папки пользователя.

Добавьте следующую конфигурацию:

{
  "mcpServers": {
    "vps-monitor": {
      "type": "stdio",
      "command": "ssh",
      "args": [
        "-T",
        "-o",
        "BatchMode=yes",
        "mcpuser@SERVER_IP",
        "/home/mcpuser/mcp-tools/.venv/bin/python",
        "/home/mcpuser/mcp-tools/server.py"
      ]
    }
  }
}

В этом примере предполагается, что на VPS создан пользователь mcpuser, которому уже настроен вход по SSH-ключу. Если используется другая учётная запись, замените имя пользователя и пути к файлам.

Параметр -T отключает выделение терминала, а BatchMode=yes запрещает интерактивный запрос пароля. Поэтому предварительно необходимо убедиться, что вход по SSH-ключу работает без ручного ввода пароля учётной записи.

После сохранения конфигурации откройте настройки MCP в Cursor и проверьте доступность нового сервера.

Если подключение выполнено успешно, в списке инструментов появится disk_status.

Шаг 4. Проверьте работу MCP

Откройте чат Cursor в режиме Agent и отправьте запрос:

Проверь, сколько свободного места осталось на моём VPS. Используй инструмент disk_status и покажи результат в гигабайтах.

Cursor должен обнаружить доступный инструмент и предложить его вызов в соответствии с настройками подтверждения действий.

После выполнения запроса MCP-сервер вернёт информацию о состоянии диска, а агент сможет представить её в понятном виде.

В результате мы получили работающую интеграцию между Cursor и программой, расположенной на VPS.

Важный нюанс: в этом примере MCP-процесс запускается через SSH при подключении клиента. Он не является постоянно работающей публичной HTTP-службой. Для единственного пользователя этого часто достаточно.

Если Cursor не видит инструмент, проверьте конфигурацию mcp.json, работу SSH-подключения и журналы MCP в самом редакторе. Дополнительной причиной могут быть сообщения, выводимые удалённой оболочкой в стандартный поток stdout: при использовании stdio там должны передаваться только сообщения MCP.

Как запустить MCP в качестве постоянного HTTP-сервиса

Предыдущий способ удобен для персональной работы с Cursor. Но если к MCP должны подключаться несколько пользователей или разные приложения, целесообразно рассмотреть Streamable HTTP.

В такой архитектуре MCP-сервер работает как отдельный HTTP-сервис, а клиенты подключаются к нему по защищённому адресу.

Например:

Для запуска через официальный Python SDK можно использовать соответствующий транспорт:

mcp.run(
    transport="streamable-http",
    host="127.0.0.1",
    port=8000,
    stateless_http=True,
    json_response=True,
)

Здесь предполагается, что объект mcp и инструменты уже определены в программе. Приведённый фрагмент заменяет запуск через stdio, а не создаёт самостоятельный защищённый сервис.

Адрес 127.0.0.1 ограничивает прослушивание локальным интерфейсом VPS. Для внешнего доступа потребуется отдельно настроить обратный прокси, например Nginx, и HTTPS.

Кроме того, необходимо реализовать проверку подлинности клиентов и ограничение их полномочий. Сам по себе HTTPS не запрещает посторонним обращаться к инструментам.

Для удалённых MCP-серверов стандарт предусматривает механизмы авторизации на основе OAuth. В закрытых инфраструктурах также могут применяться приватные сети, VPN и дополнительные уровни контроля доступа.

После настройки защищённого сервиса его можно подключить к Cursor через параметр url в mcp.json:

{
  "mcpServers": {
    "remote-mcp": {
      "url": "https://mcp.example.com/mcp"
    }
  }
}

Этот пример показывает только адрес подключения. Он предполагает, что на стороне сервера уже настроена необходимая авторизация, поддерживаемая Cursor. Без неё публиковать MCP-интерфейс в открытом интернете нельзя.

Для постоянной работы процесс дополнительно запускают под управлением systemd или Docker Compose с предусмотренной политикой перезапуска.

На этом этапе особенно полезно Docker-ready окружение, поскольку оно позволяет изолировать зависимости нескольких сервисов и управлять их запуском независимо друг от друга.

Какие задачи можно автоматизировать через MCP на VPS

Практическая ценность MCP определяется не количеством установленных интеграций, а тем, какие действия они позволяют выполнять в реальной работе.

Разработка и сопровождение приложений

Предположим, команда разрабатывает веб-сервис в Cursor. Код хранится в GitHub, приложение размещено на VPS, а информация об ошибках собирается в системе логирования.

Если подключить соответствующие MCP-инструменты, разработчик сможет запросить у агента анализ последних ошибок и сопоставление их с изменениями в репозитории.

Cursor получит данные из разрешённых источников и сможет предложить конкретные исправления.

При наличии специально настроенных инструментов этот сценарий можно расширить запуском тестов или созданием pull request. Но выполнять изменения в рабочей инфраструктуре желательно только после подтверждения ответственного специалиста.

Мониторинг сайтов и инфраструктуры

MCP можно использовать для получения технических показателей серверов и приложений.

Например, создать инструменты проверки свободного места, статуса служб, загрузки процессора или доступности HTTP-эндпоинтов.

Для разработчика это упрощает диагностику: вместо последовательного выполнения команд он формулирует задачу обычным языком.

При этом MCP не заменяет полноценную систему мониторинга. Для постоянного сбора метрик, построения графиков и оповещений лучше использовать специализированные решения. MCP может предоставлять AI-агенту доступ к их данным.

Автоматизация бизнес-процессов

Интеграции могут быть полезны не только программистам.

Например, компания использует CRM, таблицы с заказами и внутреннюю систему отчётности. Через MCP можно предоставить AI-приложению отдельные операции для получения информации из этих сервисов.

Пользователь сможет задавать вопросы о данных, искать несоответствия или подготавливать аналитические сводки без ручного экспорта файлов.

Для автоматического выполнения подобных процессов по расписанию понадобится дополнительный механизм запуска: планировщик, система автоматизации или фоновый агент.

В проектах, где уже используются Cursor и серверные приложения, инфраструктура JustVibe позволяет разместить MCP-инструменты рядом с собственными сервисами, базами данных и процессами автоматизации. При этом доступы к каждой системе следует настраивать отдельно.

Работа с документами и данными

Ещё один сценарий — обработка документов, отчётов и структурированной информации.

MCP-сервер может предоставлять функции поиска по корпоративной базе знаний, получения данных из определённых каталогов или выполнения заранее подготовленных аналитических операций.

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

Чем точнее определены доступные функции, тем проще контролировать поведение автоматизации.

Безопасность MCP-сервера: что необходимо учитывать

MCP расширяет возможности AI-приложения, но вместе с этим увеличивает количество систем, к которым оно потенциально может обращаться.

Если агент получает доступ к файловой системе, базе данных или административным функциям, ошибки в настройке разрешений способны привести к нежелательным изменениям.

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

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

Особого внимания заслуживают несколько аспектов.

Аутентификация и сетевой доступ. Удалённый MCP-сервер не должен принимать запросы от неизвестных клиентов. Используйте защищённые соединения, предусмотренные протоколом механизмы авторизации или закрытую сетевую инфраструктуру.

Изоляция процессов. MCP-сервисы желательно запускать от отдельных пользователей с ограниченными правами. Контейнеры могут дополнительно изолировать зависимости и процессы, но не заменяют настройку разрешений.

Хранение секретов. API-ключи, пароли и токены не должны находиться в исходном коде или публичных репозиториях. Для них используют защищённые хранилища и переменные окружения с контролируемым доступом.

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

Есть и специфический для AI-систем риск — prompt injection. Вредоносные инструкции могут содержаться в данных, которые агент получает из внешних источников. Например, в документе, веб-странице или ответе стороннего API.

Если AI-приложение неправильно разделяет пользовательские инструкции и недоверенные данные, такие материалы могут повлиять на выбор дальнейших действий.

Поэтому особо чувствительные операции — удаление файлов, изменение базы данных, публикация новой версии приложения — следует оставлять под контролем пользователя.

Для серверов, доступных нескольким сотрудникам, также желательно вести журнал обращений и вызовов инструментов. Это помогает устанавливать причины ошибок и анализировать подозрительную активность.

Распространённые проблемы при подключении MCP к Cursor

На практике ошибки чаще возникают не в самой логике инструмента, а в способе запуска и настройке соединения.

Если Cursor не обнаруживает MCP-сервер, сначала необходимо проверить расположение mcp.json, правильность JSON и доступность указанной команды. Для подключения через SSH следует убедиться, что авторизация работает без интерактивного ввода пароля.

Если сервер появляется в настройках, но инструмент не выполняется, изучите его логи и проверьте установленные зависимости Python.

Отдельная проблема возможна при смешении разных версий MCP SDK. Например, код, написанный для Python SDK 1.x с использованием FastMCP, может потребовать изменений после перехода на 2.x.

При подключении через HTTP необходимо проверить, что клиент обращается к правильному MCP-эндпоинту, а сервер использует совместимый транспорт.

Если появляется ошибка авторизации, следует проверить конфигурацию OAuth, срок действия токена и настройки доступа. Отключать защиту ради успешного подключения не рекомендуется.

Наконец, необходимо учитывать сетевую доступность. MCP-сервер может корректно работать локально на VPS, но оставаться недоступным извне из-за настроек прокси, DNS или сетевого экрана.

В большинстве случаев полезнее последовательно проверить каждый уровень подключения, чем полностью переустанавливать сервер.

Сколько стоит запуск MCP на VPS

Сам протокол MCP открыт и не требует отдельной оплаты за использование.

Основные расходы возникают при аренде инфраструктуры, обращении к платным API и эксплуатации инструментов, которые MCP предоставляет AI-приложению.

Для простого сервера с несколькими функциями затраты на вычислительные ресурсы обычно невелики. Если же на том же VPS размещены браузерная автоматизация, базы данных и другие приложения, потребуется более производительная конфигурация.

Отдельно следует учитывать стоимость языковой модели. Например, если вы используете Cursor с платной подпиской или API, эти расходы относятся к AI-сервису, а не к самому MCP-серверу.

Таким образом, увеличение ресурсов VPS не обязательно ускорит генерацию ответов нейросети. Если модель работает в облаке, скорость её вычислений зависит прежде всего от выбранного AI-сервиса. Серверные ресурсы влияют на выполнение инструментов, обработку данных и работу размещённых приложений.

Когда собственный MCP-сервер действительно оправдан

Не для каждой AI-задачи требуется отдельный сервер.

Если необходимо только читать локальные файлы, создавать небольшие программы или обращаться к готовым облачным интеграциям, достаточно возможностей установленного AI-инструмента.

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

При этом начинать лучше с небольшого набора функций, которые решают конкретную проблему. Например, с инструмента диагностики приложения или чтения информации из внутреннего API.

По мере развития проекта к MCP можно подключать дополнительные источники данных, системы автоматизации и средства мониторинга. Но каждую интеграцию необходимо оценивать с точки зрения безопасности и практической пользы.

Заключение

MCP позволяет расширить возможности Cursor и других AI-приложений за пределы обычной генерации кода. Через стандартизированный интерфейс нейросеть получает доступ к разрешённым инструментам, данным и операциям.

Размещение MCP на VPS оправданно, когда необходимы удалённое серверное окружение, общий доступ или интеграция с постоянно работающими приложениями.

Для индивидуального использования можно начать с подключения через SSH. Если требуется обслуживать несколько клиентов, более подходящим решением станет отдельный Streamable HTTP-сервис с защищённым доступом.

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