nodboxДокументация

Что такое MCP-сервер и зачем он нужен

АА
Андрей Абрамов
Инженерия4 минуты чтения
Коротко. MCP (Model Context Protocol) - открытый протокол, по которому AI-агент подключается к внешним инструментам и данным. MCP-сервер - это программа, которая описывает агенту набор доступных действий и выполняет их по запросу. Протокол представила Anthropic в ноябре 2024 года, сегодня его поддерживают Claude Code, Cursor, Claude Desktop и другие клиенты.
Содержание

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

Определение

MCP (Model Context Protocol) - открытый протокол, по которому AI-агент подключается к внешним инструментам и источникам данных. MCP-сервер - это программа, которая объявляет агенту список доступных действий и выполняет их по запросу.

Протокол представила Anthropic в ноябре 2024 года и сразу опубликовала спецификацию открыто. За полтора года его поддержали Claude Code, Cursor, Claude Desktop, VS Code и десятки других клиентов, а серверов написали тысячи.

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

До MCP каждая интеграция писалась заново. Плагин для одного редактора не работал в другом, потому что у каждого был свой формат описания инструментов. Число комбинаций росло как произведение: N клиентов на M сервисов.

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

Как это устроено

Три роли:

Хост - приложение, где сидит пользователь: Claude Code, Cursor, Claude Desktop.

Клиент - часть хоста, которая говорит по протоколу. Пользователь его не видит.

Сервер - программа, которая даёт возможности. Может работать на той же машине или удалённо.

Сервер объявляет три вида вещей:

  • Инструменты - действия, которые агент может выполнить. Это главное.
  • Ресурсы - данные, которые агент может прочитать.
  • Промпты - заготовленные сценарии, которые пользователь вызывает явно.

Что видит агент

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

Выглядит это примерно так:

{
  "name": "deploy_project",
  "description": "Собирает проект из указанной папки и разворачивает его на сервере. Определяет стек автоматически. Возвращает адрес работающего приложения.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": { "type": "string", "description": "Путь к папке проекта" },
      "name": { "type": "string", "description": "Имя проекта" }
    },
    "required": ["path"]
  }
}

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

Что даёт MCP на практике

Разница видна на простом сравнении. Без MCP разговор про инфраструктуру выглядит так:

  • Как посмотреть логи моего бота?
  • Подключитесь по SSH и выполните journalctl -u mybot -n 100.

С MCP - так:

  • Покажи логи бота за последний час.
  • (агент вызывает get_logs) Вот последние записи. Бот перезапускался дважды, оба раза - таймаут при обращении к API.

Во втором случае человек не выходил из редактора и не знал ни слова journalctl.

Безопасность: главный вопрос

Агент, у которого есть инструменты, может ими воспользоваться. Это верно и приятно ровно до того момента, когда инструмент что-то удаляет или тратит деньги.

Что делает нормальный MCP-сервер:

  • Разделяет действия по риску. Чтение - без подтверждения. Изменение, трата денег, удаление - только с явного согласия человека.
  • Ограничивает область. Токен доступа даёт права на конкретный проект, а не на весь аккаунт.
  • Пишет журнал. Каждое действие агента видно постфактум.

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

Где взять серверы

Серверы публикуются в реестрах: официальном реестре MCP, а также в агрегаторах вроде Smithery, mcp.so, Glama и в списках на GitHub. Многие компании публикуют свои: у облачных провайдеров, систем управления задачами, баз данных и платформ деплоя они уже есть.

Подключение обычно сводится к одной строке в конфигурационном файле клиента - подробнее в статье как подключить MCP-сервер к Cursor и Claude Code.

Коротко

  • MCP - открытый протокол подключения агента к внешним инструментам, от Anthropic, ноябрь 2024.
  • MCP-сервер объявляет инструменты, ресурсы и промпты; выполняет их по запросу.
  • Модель выбирает инструмент по его текстовому описанию - поэтому описания важны.
  • Протокол убирает комбинаторный взрыв интеграций: один сервер видят все клиенты.
  • Главный вопрос при подключении - какие действия сервер разрешает агенту без подтверждения.

АААндрей АбрамовИнженерия · Отвечает за платформу и MCP-сервер

Технический руководитель nodbox. Строит платформу: CLI, MCP-сервер и слой, который превращает папку с проектом в работающее приложение. Пишет про то, что происходит под капотом деплоя и почему оно ломается.

Все статьи автора →

Читать дальше