Локальный и облачный MCP-сервер: что на самом деле видит AI

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

Коротко: локальный MCP-сервер убирает ваши данные с инфраструктуры вендора, но не убирает их из разговора. Всё, что ассистент прочитал через любой MCP-сервер, локальный или облачный, уходит той модели, с которой вы общаетесь. Локально — значит меняется, кто хранит данные и кто может до них дотянуться. Не меняется то, что видит модель.

В этой статье эти две вещи разведены. Если сам протокол для вас в новинку, начните с материала что такое MCP-сервер.

Что «локальный» и «облачный» значат технически

Спецификация MCP, ревизия 2026-07-28, определяет ровно два стандартных транспорта, и они аккуратно ложатся на эти два слова.

stdio — локальный. Клиент запускает MCP-сервер как дочерний процесс, и общаются они через стандартные ввод и вывод этого процесса: по одному JSON-RPC-сообщению на строку. Ни сетевого соединения, ни порта. Когда клиент завершается, он закрывает входной поток сервера, и процесс останавливается. Вот что конкретно означает «работает на вашей машине».

Streamable HTTP — облачный. Сервер — самостоятельный процесс с одним HTTP-эндпоинтом, и каждое сообщение — это HTTP POST к нему. Клиент обращается к нему по сети по адресу вида https://mcp.example.com/mcp. Это транспорт, за которым стоит любая кнопка «подключить аккаунт».

Различие — выбор развёртывания, а не разница в возможностях. Спецификация прямо говорит, что семантика протокола одинакова на любом транспорте: транспорт определяет, как сообщения упаковываются и доставляются, а не что они значат. Инструмент, который читает транскрипты ваших встреч, делает одну и ту же работу в обоих случаях.

Кто видит ваши данные в каждом варианте

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

Кто Локальный сервер (stdio) Облачный сервер (HTTPS)
Вендор MCP-сервера Данные не получает Хранит их и обслуживает каждый запрос
Провайдер модели Видит всё, что прочитал ассистент Видит всё, что прочитал ассистент
Ваш AI-клиент Читает локально, чтобы собрать промпт То же самое
Любой, у кого есть токен Красть нечего — токена нет Дотянется до тех же данных, пока токен не отозван

Средняя строка — та, что удивляет людей, и в обеих колонках она одинаковая. MCP-сервер не даёт модели приватного бокового канала. Он достаёт текст и отдаёт его клиенту, а тот кладёт его в промпт. С этого момента данные покинули вашу машину независимо от того, где работал сервер.

Первая и последняя строки — там, где локальный вариант выигрывает по-настоящему. У stdio нет аккаунта, нет копии на чужом диске и нет учётных данных, которые можно украсть или потерять при утечке, — потому что авторизовать нечего.

Локальный процесс, облачные данные: форма, которую размывают

Форм здесь три, а не две, и среднюю вендоры редко выделяют отдельно.

Облачный сервер, облачные данные. Вендор держит сервер у себя, вы авторизуете его через OAuth в браузере, и ваш клиент делает HTTPS-запрос, когда ему что-то нужно. Естественная форма, когда данные и так лежат в облаке этого вендора.

Локальный процесс, облачные данные. Вендор поставляет сервер, который вы запускаете сами: команда npx, uvx или docker, которую поднимает ваш AI-клиент и которая держит API-ключ. Локальными данные от этого не становятся. Процесс работает на вашем ноутбуке, а потом за каждым запросом ходит по сети в API вендора. Именно этот случай стоит исключать, когда вам говорят, что MCP-сервер локальный.

Локальный процесс, локальные данные. Данные и так на машине, поэтому сервер читает их вообще без обращения к сети. Это единственная форма, в которой слово «локальный» описывает данные, а не только процесс.

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

Что на самом деле даёт облачная авторизация

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

Спецификация MCP строит это на OAuth 2.1. Клиенты обязаны передавать параметр resource из RFC 8707, чтобы токен был привязан к одному конкретному серверу, а серверы обязаны проверять, что токен выпущен для них, и не принимать и не пересылать ничего другого. Эта механика существует, чтобы токен, выданный одному сервису, нельзя было предъявить другому.

Три практических следствия:

К stdio всё это не относится. Спецификация авторизации прямо говорит, что покрывает транспорты на базе HTTP, а реализациям на stdio следовать ей не нужно — учётные данные они берут из окружения.

Чем приходится платить за локальный сервер

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

Слоя прав обычно нет вовсе. Спецификация авторизации не применяется, поэтому у stdio-сервера, как правило, нет понятия пользователей и скоупов. Запустить его и вызвать его инструменты может почти всё, что работает от вашей учётной записи. На общей или управляемой машине это существенно.

Локальный сервер на порту — совсем другое дело. Некоторые серверы, которые называют локальными, на самом деле слушают HTTP. Спецификация разбирает этот случай прямо: серверы обязаны проверять заголовок Origin, чтобы не допустить атак через DNS rebinding, а при локальном запуске привязываться к 127.0.0.1, а не к 0.0.0.0. Без этих мер, предупреждает спецификация, атакующие могут использовать DNS rebinding и обращаться к локальным MCP-серверам с удалённых сайтов.

Цепочка поставок становится вашей. Сервер, запущенный через npx, скачивает и выполняет код на вашей машине с вашими правами. OWASP MCP Top 10, по состоянию на 2026 год всё ещё в статусе беты, перечисляет среди десяти категорий атаки на цепочку поставок и подмену зависимостей (MCP04:2025) и отравление инструментов (MCP03:2025) — риски, которые несёт локальная установка и не несёт размещённый эндпоинт. Про общий случай спецификация говорит без обиняков: инструменты представляют собой выполнение произвольного кода, а описания их поведения следует считать недоверенными, если они пришли не от доверенного сервера.

Правило, общее для обеих форм

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

  1. Список инструментов и есть список прав. Названия и количество на странице настройки конкретны. «AI-powered intelligence» — нет. Если вам важно, чтобы доступ был только на чтение, список инструментов — то место, где это либо правда, либо нет.
  2. Всё прочитанное становится содержимым промпта. Обращение через MCP — не приватный запрос. Это текст по дороге в разговор с провайдером модели, и на него распространяются правила хранения этого провайдера.

Как понять, что перед вами

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

  1. К чему подключается клиент? URL с https:// — облачный сервер. Команда npx, uvx или docker — процесс на вашей машине.
  2. Какие учётные данные он просит? Вход через браузер означает облако вендора. API-ключ в конфиге означает локальный процесс, который ходит в их API. Отсутствие учётных данных вообще означает, что данные и так были на машине.
  3. Где данные лежат без всякого MCP? Если ваши заметки сегодня в облаке вендора, ни один транспорт MCP их оттуда не вынесет.
  4. Каким клиентом вы пользуетесь? Claude Desktop запускает локальные серверы напрямую — они ставятся как расширения десктопного приложения. ChatGPT в режиме разработчика подключается к удалённым HTTPS-эндпоинтам, поэтому добраться до локального stdio-сервера можно, только поставив перед ним туннель. Один и тот же сервер бывает локальным в одном клиенте и удалённым в другом.

Когда облако — ответ получше

Прямо, потому что выбор здесь не односторонний:

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

Что из этого следует

Задавайте два вопроса вместо одного. Где работает сервер — это про то, кто хранит ваши данные и кто дотянется до них с токеном. Что читает ассистент — это про то, что уходит провайдеру модели, и здесь ответ одинаков в обоих случаях.

Если нужная вам форма — локальный процесс на локальных данных, то так устроен MCP-сервер Speak-Y: он входит в состав десктопного приложения, ставится из раздела Настройки → Интеграции в один клик и читает записи, которые уже лежат на вашей машине, — без аккаунта, без API-ключа и без копии на стороне. Чтение работает и при закрытом приложении; инструменты, которые что-то меняют, идут через приложение и спрашивают подтверждение, а флаг --read-only ограничивает клиента одним чтением. Сервер доступен на всех тарифах. Документация по MCP описывает ручную настройку, политика конфиденциальности объясняет, что и где хранится, а если интересно, как на тот же вопрос отвечают другие сервисы заметок, мы сравнили их MCP-серверы между собой.

FAQ

Чем локальный MCP-сервер отличается от облачного?

Локальный сервер — программа, которую AI-клиент запускает на вашем компьютере и с которой общается через стандартные ввод и вывод процесса; сеть не задействована. Облачный — веб-сервис, к которому клиент обращается по HTTPS с авторизацией через OAuth. В спецификации MCP это транспорты stdio и Streamable HTTP.

Скрывает ли локальный MCP-сервер мои данные от AI?

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

Локальный MCP-сервер безопаснее облачного?

Он приватнее, но не безопаснее автоматически. Спецификация авторизации MCP распространяется только на HTTP-транспорты; серверам на stdio предписано брать учётные данные из окружения, поэтому своего слоя прав у локального сервера обычно нет. Дотянуться до него может почти всё, что работает от вашего пользователя.

Как понять, локальный передо мной MCP-сервер или облачный?

Посмотрите на инструкцию по настройке. URL с https:// и вход через браузер означают облако вендора. Команда npx, uvx или docker означает процесс на вашей машине. Но локальный процесс с API-ключом всё равно ходит в API вендора, поэтому по одной команде нельзя судить, где лежат данные.

Могут ли ChatGPT и Claude работать с локальными MCP-серверами?

Claude Desktop запускает локальные серверы напрямую — они ставятся как расширения десктопного приложения. ChatGPT в режиме разработчика подключается к удалённым HTTPS-эндпоинтам, поэтому локальный stdio-сервер сначала нужно вывести наружу через туннель. Один и тот же сервер бывает локальным в одном клиенте и удалённым в другом.