Локальный MCP-сервер и удалённый выглядят одинаково, когда уже работают: тот же список инструментов в клиенте, тот же диалог, тот же результат. Разница — в том, что вы отдали, чтобы туда попасть. Локальный сервер — программа на вашей машине, которую клиент запускает и с которой говорит через стандартный ввод и вывод, и отдаёте вы командную строку. Удалённый сервер — чужой HTTPS-эндпоинт, и отдаёте вы учётные данные, а вместе с ними всё, что они открывают, — на всё время, пока вы их не отзовёте.
Поэтому полезный вопрос перед тем, как вставить URL в диалог подключения, — не «можно ли доверять этому серверу»: по странице каталога на него всё равно никто не ответит. Полезны три более узких вопроса, у которых ответы есть: на что выписан токен, куда идти, чтобы его забрать, и что на самом деле проверил каталог, в котором вы нашли сервер. Ответы ниже — по спецификации MCP и документации вендоров в том виде, в каком они были 16 августа 2026 года.
Текущая ревизия спецификации, 2026-07-28, рассматривает два транспорта как разные контексты безопасности. Авторизация в MCP необязательна, и где она применяется — сказано явно: реализациям на HTTP-транспорте следует соответствовать спецификации OAuth, а stdio-реализациям — не следовать ей вовсе и брать учётные данные из окружения. HTTP+SSE, более старый удалённый транспорт, объявлен устаревшим; ожидать стоит Streamable HTTP.
| Локальный (stdio) | Удалённый (Streamable HTTP) | |
|---|---|---|
| Что вы отдаёте | Команду, которую запустит клиент | URL и обычно OAuth-грант |
| Где выполняется код | Ваша машина, ваша учётная запись | Инфраструктура, которую держит кто-то другой |
| Учётные данные | Берутся из окружения | Токен доступа, привязанный к одному этому серверу |
| Что делает «отключить» | Перестаёт запускать процесс | Удаляет копию токена у клиента; грант может остаться |
| Худший случай, если автор враждебен | Произвольный код с вашими правами | Всё, до чего дотягиваются одобренные scopes |
Безопасного столбца здесь нет. Локальный сервер — произвольный код, работающий от вашего имени; ровно поэтому спецификация требует, чтобы клиент, предлагающий настройку локального сервера в один клик, показывал точную команду, которую выполнит, без сокращений, и сначала получал явное согласие. Удалённый сервер не кладёт код на вашу машину, но уводит ваши данные оператору и оставляет путь доступа, который переживёт ваше внимание. Эти два ломаются в разные стороны; наше сравнение того, что видит каждый вид разбирает это подробнее.
Модель авторизации — OAuth 2.1, и пользователю здесь стоит понять привязку к
аудитории. Клиенты обязаны реализовать Resource Indicators for OAuth 2.0
(RFC 8707): параметр resource должен отправляться и в запросе авторизации, и в
запросе токена, называя конкретный сервер, для которого токен выписан. Серверы
обязаны проверять, что токены выписаны именно им, принимать только токены,
действительные для их собственных ресурсов, и не принимать и не пропускать
никакие другие. Передача клиентского токена дальше, в нижележащий API, —
«token passthrough» — запрещена прямо.
Значит, корректно реализованный токен бесполезен на другом сервере. Это закрывает replay, переиспользование учётных данных между сервисами и целый класс атак «запутанного заместителя» — и ничего не говорит о самом операторе. Привязка к аудитории отвечает на вопрос, где токен работает, а не на то, что компания на другом конце делает с тем, что её инструменты забирают от вашего имени. На это отвечает их политика конфиденциальности, а не протокол.
Scopes — вот где на самом деле решается ваш риск. Спецификация подталкивает
серверы к минимуму привилегий: scopes_supported задуман как минимальный набор,
нужный для базовой функциональности, а всё сверх запрашивается постепенно, при
первой попытке привилегированной операции. Серверы, которые этому следуют, просят
мало на входе; те, которые нет, показывают один экран согласия со всем сразу.
Этот экран — последняя точка, где решение ещё за вами.
Поверхностей отзыва две, и большинство пользуется только первой.
В ассистенте. В Claude пользовательские коннекторы живут в разделе Customize > Connectors, где коннектор добавляют, вставив URL сервера; пользователям Free доступен один. На той же странице его отключают и включают или выключают отдельные инструменты сервера вместо того, чтобы принимать их все. Anthropic формулирует позицию по доверию прямо в справочном центре: пользовательские коннекторы позволяют подключить Claude к произвольным сервисам, не проверенным Anthropic. В ChatGPT удалённые серверы попадают через режим разработчика — Settings → Security and login, в вебе, принимаются эндпоинты SSE и streaming HTTP. Собственная документация OpenAI называет это мощным, но опасным, перечисляет среди рисков prompt injection и разрушительные действия записи и по умолчанию требует подтверждения для действий записи.
В сервисе, которым вы авторизовались. Вот этот шаг и пропускают. Удаление коннектора убирает копию токена у вашего клиента; грант, записанный в вашей учётной записи Google, GitHub, Atlassian или Notion, — отдельный объект со своим сроком жизни, а привязанный к нему refresh-токен может пережить коннектор надолго. Рекомендации Anthropic говорят ровно это: отзывать, отключая коннектор в настройках Claude или в настройках безопасности стороннего сервиса. Делайте и то и другое, а страницу подключённых приложений найдите до подключения.
Официальный реестр MCP по адресу registry.modelcontextprotocol.io — естественное
место для поиска серверов, и значение листинга легко переоценить. Устав его
рабочей группы конкретен. Публикация и доверие покрывают потоки аутентификации —
GitHub OAuth, GitHub OIDC, проверку через DNS и HTTP — плюс владение
пространством имён, инструменты модерации и жалобы сообщества. Явно вне области:
ранжирование или выбор между реализациями MCP-серверов за клиентов или конечных
пользователей, а также размещение, распространение и выполнение серверного кода,
потому что реестр — каталог метаданных, а не реестр пакетов.
Значит, подтверждённое пространство имён доказывает, что тот, кто опубликовал запись, контролирует GitHub-организацию или домен в её имени. Это реальный сигнал: он усложняет тайпсквоттинг и даёт того, с кого спросить. Это не ревью кода, не аудит безопасности и не одобрение — личность установлена, поведение по-прежнему неизвестно.
Один принцип из спецификации стоит нести в каждое подключение: описания поведения инструментов, включая аннотации, следует считать недоверенными, если они получены не от доверенного сервера, а хосты обязаны получить явное согласие пользователя перед вызовом любого инструмента. Описание инструмента — текст, который пишет удалённая сторона, а читает ваша модель: это и есть определение недоверенного ввода и причина, по которой «сервер сказал, что он только для чтения» — не средство защиты.
Конкретный прецедент — CVE-2025-6514, опубликованная 9 июля 2025 года против
mcp-remote, прокси, через который многие клиенты добирались до удалённых
серверов. С оценкой 9.6 она позволяла вредоносному серверу выполнить инъекцию
команд ОС на подключающейся машине через подделанное значение
authorization_endpoint в потоке OAuth. Затронуты версии с 0.0.5 по 0.1.16,
исправление — в 0.1.16. Ничего не нужно было одобрять в чате: атакой было само
подключение. Всё, что присылает удалённый сервер, — это данные, которые разбирает
ваш софт, и само подключение — часть вашей поверхности атаки.
Всё перечисленное — цена доступа к тому, что и правда живёт в чужом облаке: к трекеру задач, CRM, календарю. Для них это разумная цена и странная — для файлов, которые уже лежат у вас на диске; поэтому Speak-Y поставляет локальный сервер, а не размещённый эндпоинт.
Его MCP-сервер — процесс, который ваш клиент запускает на вашей машине. Чтению
больше ничего не нужно: результаты поиска, расшифровки, резюме встреч и задачи
берутся прямо из библиотеки на том же компьютере, без выданного токена и без
ретранслятора посередине. Команды, которые что-то меняют, — поставить тег на
запись, назвать говорящих, поделиться в командный канал — идут через запущенное
приложение, объявляются вашему клиенту как изменяющие данные, поэтому он сначала
спрашивает, и логируются там, где их можно выключить. Добавление --read-only в
аргументы сервера означает, что изменяющие команды этому клиенту вообще не
публикуются, — гарантия более сильная, чем описание, обещающее хорошее поведение.
Установка — в один клик из раздела Настройки → Интеграции, бесплатно на любом
тарифе, включая Free.
Размен работает в обе стороны: локальный сервер не может обслужить ChatGPT во вкладке браузера и работает только там, где работает приложение. Если это ограничение важно, следующее сравнение для чтения — какие клиенты вообще умеют запускать локальный сервер; а если вопрос в том, что ассистенту стоит разрешать менять после подключения, — где проходит граница по доступу на запись. Обзор MCP перечисляет, что отдаёт сервер Speak-Y.
Локальный сервер — программа на вашей машине, которую клиент запускает и с которой говорит через стандартный ввод и вывод: вы отдаёте командную строку, и никакого токена не выдаётся. Удалённый сервер — HTTPS-эндпоинт, который держит кто-то другой: вы отдаёте учётные данные, обычно токен доступа OAuth 2.1, а данные, которых касаются инструменты, уезжают в инфраструктуру этого оператора.
По спецификации авторизации MCP токен привязан к одному серверу и одному набору scopes. Клиенты обязаны отправлять индикатор ресурса RFC 8707 с именем сервера и в запросе авторизации, и в запросе токена, а сервер обязан проверять, что токены выписаны именно ему, и не принимать и не пересылать никакие другие. Это исключает повторное использование токена в другом сервисе. О том, что оператор делает с данными, которые его инструменты забирают от вашего имени, это не говорит ничего.
В двух местах, и большинство делает только первое. Удаление коннектора в ассистенте стирает копию токена у клиента; OAuth-грант, записанный в сервисе, которым вы авторизовались, — отдельный объект, и он обычно остаётся жив. Рекомендации Anthropic говорят отзывать доступ, отключая коннектор в настройках Claude или в настройках безопасности стороннего сервиса. Найдите страницу подключённых приложений у провайдера до подключения, а не после.
Нет. Реестр подтверждает владение пространством имён — имя io.github.* через аутентификацию GitHub, имя на основе домена через проверку DNS или HTTP, — и это доказывает, что издатель контролирует это имя. Его устав явно выносит за область ранжирование и выбор между реализациями серверов и указывает, что реестр — каталог метаданных, а не реестр пакетов: он не размещает, не распространяет и не выполняет серверный код.
Только то, до чего дотягиваются одобренные вами scopes. Риск в том, что scopes шире задачи: токен, выданный на весь почтовый ящик или диск, доступен любому инструменту этого сервера всё время жизни гранта. Читайте экран согласия, а не страницу с описанием, и пользуйтесь настройками по инструментам там, где клиент их даёт: в настройках коннекторов Claude отдельные инструменты можно включать и выключать, а режим разработчика ChatGPT по умолчанию требует подтверждения действий записи.