Боты и автоматизация2026-08-028 минРедакция Submarine School

MCP сервер: что это простыми словами и как устроен в 2026

MCP сервер: что это простыми словами и как устроен в 2026

MCP (Model Context Protocol) это открытый стандарт, по которому ИИ-приложение подключается к внешним данным и действиям: файлам на диске, базе, репозиторию, браузеру. MCP-сервер в этой связке небольшая программа, которая описывает свои умения в едином формате, а любой поддерживающий стандарт ассистент их подхватывает. Ниже: как устроена связка, что сервер отдаёт агенту, какие бывают транспорты и о чём помнить ради безопасности.

Зачем понадобился отдельный протокол

Раньше каждая связка «ассистент плюс внешний сервис» писалась отдельно: свой формат описания функций у одного вендора, свой у другого, перенести интеграцию из приложения в приложение было нельзя. MCP убирает эту работу: сервис один раз описывает себя по общим правилам и подключается ко всем клиентам, которые понимают стандарт. Официальная документация сравнивает это с разъёмом USB-C для ИИ-приложений.

Стандарт придумали в Anthropic, но её собственностью он быть перестал: в декабре 2025 года MCP передали в Agentic AI Foundation, целевой фонд под управлением Linux Foundation, соучредителями стали Anthropic, Block и OpenAI (анонс Anthropic). Версии протокола обозначаются датой, на август 2026 текущая ревизия это 2026-07-28 (страница версий).

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

Занять место

Из чего состоит связка: хост, клиент и сервер

В MCP три роли, и путаница между ними мешает читать документацию:

  • Хост, само ИИ-приложение (Claude Code, Claude Desktop, VS Code, ChatGPT). Управляет подключениями и решает, что показать модели.
  • Клиент, внутренний компонент хоста. На каждый сервер хост поднимает отдельного клиента со своим соединением.
  • Сервер, программа, которая отдаёт данные и умения. Работает локально на вашем компьютере или на чужой машине в интернете.

Модель никуда не «ходит» сама, все обращения идут через хост. Внутри протокол разделён на два слоя: слой данных описывает обмен сообщениями по JSON-RPC 2.0, слой транспорта отвечает за канал, по которому эти сообщения бегут.

По теме: Как создать бота в Майнкрафт в 2026: mineflayer и ИИ-помощник

Что MCP-сервер отдаёт агенту

Сервер выставляет наружу три вида вещей, в документации они называются примитивами:

  • Инструменты (tools): функции, которые модель вызывает, чтобы что-то сделать: прочитать файл, выполнить SQL, создать задачу. У каждой есть имя, описание и JSON-схема параметров. Список приходит по tools/list, вызов идёт через tools/call.
  • Ресурсы (resources): данные для чтения, адресуемые по URI. Содержимое файла, схема базы, ответ API.
  • Промпты (prompts): готовые шаблоны обращений, которые сервер предлагает пользователю.

Пример из спецификации: сервер к базе отдаёт инструменты для выборок, ресурс со схемой таблиц и промпт с примерами обращений к ней.

Есть и обратное направление: сервер может попросить у пользователя уточнение или подтверждение действия (примитив elicitation). А вот sampling, когда сервер просил у клиента ответ модели, и logging в ревизии 2026-07-28 объявлены устаревшими: логи теперь пишут в stderr, к модели обращаются напрямую через её API.

Ещё одна деталь ревизии 2026 года: протокол стал бессессионным. Каждое обращение несёт свою версию и возможности в поле _meta, а узнать, что сервер умеет, можно одним необязательным вызовом server/discover. Благодаря этому удалённый сервер живёт за обычным балансировщиком.

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

Транспорты: локальный процесс и удалённый сервер

Транспортов в протоколе ровно два, и от выбора зависит, где физически крутится сервер.

  • stdio: клиент запускает сервер как обычный процесс на вашей машине и общается через стандартный ввод-вывод. Никакой сети, минимальные задержки, доступ к локальным файлам. Так работает почти всё, что вы ставите себе сами.
  • Streamable HTTP: сообщения идут по HTTP POST, ответы при необходимости стримятся через Server-Sent Events. Так подключаются удалённые серверы чужих сервисов, авторизация обычно по OAuth или токену в заголовке.

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

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
    }
  }
}

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

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

Записаться на вебинар

Какие MCP-серверы уже существуют и кто их понимает

В официальном репозитории поддерживаются семь эталонных серверов, они же самые понятные примеры для чтения кода:

  • Filesystem: операции с файлами с ограничением по папкам.
  • Git: чтение, поиск и изменения в git-репозиториях.
  • Fetch: загрузка веб-страниц и приведение их к удобному для модели виду.
  • Memory: долгая память в виде графа знаний.
  • Time: время и часовые пояса.
  • Sequential Thinking: пошаговое рассуждение над задачей.
  • Everything: тестовый сервер с инструментами, ресурсами и промптами.

Интеграции с конкретными сервисами (GitHub, PostgreSQL, SQLite, Slack, Google Drive, браузер через Puppeteer) из этого репозитория переехали в архив: их подхватили сами вендоры и ведут у себя. Искать готовое стоит в официальном реестре: он хранит только описания, а пакеты лежат в npm, PyPI, Docker Hub или релизах GitHub. Про фирменные каталоги есть разбор коннекторов Claude.

Со стороны клиентов поддержка заявлена у Claude, ChatGPT, Visual Studio Code с Copilot, Cursor и десятков других приложений, список ведётся на сайте стандарта. Один написанный сервер работает и в терминальном агенте, и в редакторе, и в чате. По сути это и есть способ дать агенту руки, чем ИИ-агент отличается от чат-бота, мы разбирали отдельно.

По теме: Как сделать ботов умными в 2026: подключить нейросеть к боту

Безопасность: что получает чужой сервер

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

Что сделать перед подключением стороннего сервера:

  1. Прочитайте команду запуска целиком. В конфиг можно спрятать что угодно, документация прямо приводит примеры вредоносных команд, замаскированных под установку сервера.
  2. Проверьте происхождение пакета: репозиторий, автора, свежесть коммитов, наличие записи в официальном реестре.
  3. Ограничьте область. Файловому серверу указывайте рабочую папку, а не домашний каталог. Токенам выдавайте минимальные права и только на чтение, если запись не нужна.
  4. Оставляйте подтверждение действий на себе. Удаление, отправка сообщений, платежи не должны проходить без вашего явного согласия.

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

Как выглядит свой простой MCP-сервер

Минимальный сервер это буквально функция с описанием. Официальный быстрый старт на Python требует Python 3.10 и SDK версии 2.0 или новее, ставится он командой uv add "mcp[cli]".

from mcp.server import MCPServer

mcp = MCPServer("hello")

@mcp.tool()
async def greet(name: str) -> str:
    """Поздороваться с человеком по имени.

    Args:
        name: имя человека
    """
    return f"Привет, {name}!"

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

Дальше файл прописывается в настройки клиента так же, как сервер выше, только вместо npx указывается ваш интерпретатор. Имя параметра и строка документации попадают в описание инструмента, по ним модель понимает, когда его звать, поэтому пишите их внятно. И при stdio нельзя печатать через print: канал занят протоколом, логи идут в stderr.

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

Частые вопросы

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

Формой описания. Обычный API нужно объяснять модели вручную и под каждое приложение по-своему. MCP-сервер сам сообщает список умений в машиночитаемом виде, и клиент подхватывает их без правки кода. Часто это тонкая обёртка над существующим API.

Нужно ли уметь программировать, чтобы пользоваться MCP?

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

MCP-сервер это отдельная машина, которую надо арендовать?

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

Если хотите не просто понимать устройство MCP, а собирать с ИИ рабочие инструменты под свои задачи, приходите на бесплатный вебинар по вайбкодингу: показываем весь путь от идеи до готового проекта.

Записаться на вебинар
Разборы, кейсы и фишки вайбкодинга каждую неделю в телеграм-канале «Яков вайбкодит».
Первый проект с ИИ: живой разбор, бесплатно Занять место