Что такое MCP-сервер и зачем он нужен
Содержание
Языковая модель сама по себе умеет одно: получать текст и отвечать текстом. Она не может открыть файл, сходить в базу, перезапустить сервис. Всё, что выглядит как действие агента, на самом деле делает программа вокруг модели - и 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-сервер объявляет инструменты, ресурсы и промпты; выполняет их по запросу.
- Модель выбирает инструмент по его текстовому описанию - поэтому описания важны.
- Протокол убирает комбинаторный взрыв интеграций: один сервер видят все клиенты.
- Главный вопрос при подключении - какие действия сервер разрешает агенту без подтверждения.
Технический руководитель nodbox. Строит платформу: CLI, MCP-сервер и слой, который превращает папку с проектом в работающее приложение. Пишет про то, что происходит под капотом деплоя и почему оно ломается.