MCP-сервера и для чего они нужны? Давайте попробуем разобраться.

MCP — это Model Context Protocol, протокол передачи сообщений между клиентом и сервером, между разными участниками. Что такое протокол? По сути, набор правил, по которым программа с моделью подключается к внешним сервисам и их данным. MCP опубликован в ноябре 2024 года и открыт для всех — то есть совершенно бесплатен. Для любого сервиса, который вы разрабатываете, можно тоже сделать MCP-сервер, по которому, например, Claude Code сможет общаться с вашим сервисом или приложением.

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

Общая схема работы

Есть клиент, сервер и сервис, к которому идёт обращение. Claude Code выполняет роль клиента — того, кто делает запросы к серверу. MCP-сервер становится промежуточным звеном между клиентом и сервисом. Вместо Claude Code здесь может быть и другая LLM-модель, другой терминальный агент — например, от OpenAI. А в качестве сервиса может выступать что угодно: веб-сервис, утилита на компьютере, база данных, GitHub — всё, чем можно управлять.

У сервиса, как правило, есть свой API — инструменты, с помощью которых им можно управлять. Но у каждого сервиса API разный: каждый разрабатывает его по-своему, и Claude Code приходится каждый раз изучать и как-то с этим взаимодействовать. Благодаря MCP мы получаем универсальный протокол, единый для всех сервисов — в этом основное преимущество, стандартизация передачи данных. Claude Code или другой терминальный агент может обратиться к MCP-серверу и спросить: что ты умеешь, какие у тебя есть инструменты.

Прямой API против MCP

Может возникнуть вопрос: зачем нужен MCP-сервер, если можно обращаться к API напрямую?

При обращении к API напрямую модель работает с сырыми данными. Вам нужно самим написать в проекте описание вызовов и возможностей, ключ доступа записать в файл или переменную окружения, а вход и обновление ключа делать вручную. Ответ сервиса попадает в сессию как есть, сырым JSON, и работает только там, где вы это описали. Недостаток — сырые данные это трата токенов и больше времени на обработку ответа.

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

Ещё один плюс: один и тот же MCP-сервер можно использовать с любым клиентом — Claude Code, Cursor, ChatGPT, другими моделями. Не нужно заново писать навыки и инструкции под конкретную модель — вы просто подключаете инструменты по стандартному протоколу и работаете с ними.

В итоге получаем такую схему: единый протокол передачи данных, Claude Code как клиент общается с разными сервисами — Notion, Figma, GitHub, Postgres и любыми другими инструментами.

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

Сервер отдаёт клиенту, как правило, три вида содержимого. Инструменты (tools) — функции, которые можно вызвать: когда клиент спрашивает, что ты умеешь, сервер отвечает, что может создать задачу, выполнить запрос к базе данных, загрузить файл. Ресурсы (resources) — данные сервера, которые можно запросить, подставляя их в запрос через символ @. И слэш-команды или промпты — готовый набор действий, который сервер выполнит по команде.

MCP и контекст сессии

До версии Claude Code 2.1 использование MCP-серверов занимало очень много контекста: в начале сессии подгружались описания всех установленных MCP-серверов. Например, 9 серверов давали 140 описаний — и всё это попадало в сессию, которая от этого сильно загромождалась при большом числе установленных серверов.

Ситуация изменилась с выходом Claude Code 2.1: появился инструмент Tool Search. Теперь при запуске сессии подгружаются не все описания инструментов MCP-серверов, а только короткие строки — по ним Claude Code определяет, нужно ли вызвать команду конкретного MCP-сервера. Tool Search включён по умолчанию — можно проверить свою версию Claude Code и убедиться, что он есть; поведение также можно отключить в настройках.

MCP-серверы, как и навыки, имеют три области видимости: локальную, проекта и пользователя.

MCP-сервер или навык — как выбрать

Возникает вопрос: что использовать в работе — MCP-сервер или навык? Вот примерная схема принятия решения.

Есть сервис, к которому нужно обратиться. Смотрим документацию: если MCP-сервера у этого сервиса нет — тут всё понятно, остаётся только писать навык, инструкции через командную строку или HTTP-запросы.

Если MCP-сервер есть, смотрим: вход у него только через браузер? Если да — берём MCP-сервер. Если сервис работает и по API, задаём себе вопрос: сколько вызовов нужно делать из всего API сервиса? Если 2-3 — нет смысла ставить громоздкий MCP-сервер и занимать контекст, проще написать свой навык с этими вызовами. Но если планируете полноценно работать с сервисом — например, с Figma, чтобы там вёрстать, — а у него сложный API, установка MCP-сервера значительно упростит работу. Если у вас десятки вызовов к инструменту и вы хотите плотно с ним работать — вывод очевиден, нужен MCP-сервер.

У многих сервисов, с которыми вы работаете, уже есть готовые MCP-серверы — стоит посмотреть, изучить, и если такой сервер есть, вполне можно использовать эту возможность.