Model Context Protocol, расширяющий возможности AI в IDE, стремительно набирает популярность. Почему это происходит — и почему разработчикам стоит обратить на него внимание?
Одна из горячих тем в области AI-кодинг-тулов и developer tooling — протокол MCP (Model Context Protocol), представленный Anthropic в ноябре 2024 года. Он стремительно набирает популярность: AI-модели и инструменты для разработчиков активно внедряют его.
Аналогия для объяснения MCP — это как «порт USB-C для AI-приложений»: он создает универсальную точку расширения, через которую LLM и девтулы могут интегрироваться друг с другом, а также с базами данных, тикетинг-системами и т. д. Концепция начинает набирать популярность и в других областях, но MCP изначально создавался как способ расширить функциональность девелоперских IDE — таких как Claude Desktop, Claude Code, VS Code, Cursor, Windsurf и других. Сегодня мы сосредоточимся именно на этом применении, разобрав:
Что такое MCP? Практический пример. Раньше мне приходилось использовать отдельный инструмент, чтобы делать запросы к базе данных в production-приложении. С MCP я могу «разговаривать» с базой данных прямо из IDE — это действительно меняет правила игры!
Происхождение MCP. Два инженера из Anthropic — Дэвид Сориа Парра и Джастин Спар-Саммерс — реализовали MCP, решая собственную проблему: они хотели, чтобы Claude Desktop лучше работал с девтулзами.
Чтобы понять MCP, нужно понимать Language Server Protocol (LSP). Многие базовые идеи MCP вдохновлены подходом Microsoft к упрощению интеграции языковой поддержки в IDE.
1. Что такое MCP? Практический пример
У меня есть API, который обслуживает микросайт, где платные годовые подписчики могут запросить промокод на 12 месяцев бесплатного доступа к Perplexity и 3 месяца Kagi. Сайт работает на Node.js, написан на TypeScript и использует PostgreSQL в качестве базы данных.
Каждый раз, когда я правлю backend или frontend, а также вношу изменения в данные, у меня открыты два окна:
IDE с исходным кодом и встроенным терминалом
Админка базы данных для запросов к таблицам или изменения схем — я использую PgAdmin

IDE становятся всё умнее благодаря интеграции LLM-функциональности: Windsurf и Cursor уже обладают агентными возможностями и могут предлагать правки сразу в нескольких файлах. Однако они не умеют подключаться к моей базе данных PostgreSQL, чтобы выполнять запросы. С MCP — умеют. И теперь это могу делать и я.
MCP (Model Context Protocol) — это протокол, который служит мостом между LLM-инструментами, такими как IDE с AI-функциями (например, Cursor, Windsurf и другие), и внешними утилитами.
Вот как я использую LLM промпты, чтобы получить доступ к базе данных прямо из IDE. В этом примере я использую Windsurf, но всё то же самое можно сделать в Cursor, Zed и VS Code.
Добавление MCP-сервера PostgreSQL в мою IDE
Для начала в настройках Windsurf, в разделе Cascade (агентная функциональность Windsurf), я выбираю опцию «Add MCP Server». Открывается выпадающее меню с преднастроенными серверами:

Добавление сервера подразумевает настройку строки подключения к базе данных — это может быть как локальный экземпляр Postgres на вашей машине, так и удалённый. Я использовал удаленную строку подключения, чтобы связаться с базой на своём сервере. После подключения база данных отображается как MCP Server — готова к использованию.

Теперь, при любом вводе команды в интерфейсе Cascade, LLM может по своему усмотрению использовать подключённый MCP-сервер. Начнём с запроса по промокодам:
«Сколько пользователей активировали промокоды Kagi за последние 10 дней?»
LLM пытается сгенерировать SQL-запрос к серверу, чтобы получить ответ, но ошибается в названии таблицы — вполне типичная ситуация для LLM:

И вот тут начинается «магия»: благодаря возможности итеративного взаимодействия с новой базой данных, LLM делает следующий шаг — она обращается к моей PostgreSQL-инстанции, чтобы найти правильное имя таблицы.

Затем она формирует новый SQL-запрос:

Упс! — снова ошибка, теперь в названиях столбцов. Но LLM сразу же делает запрос к схеме таблицы и быстро всё исправляет:

В итоге — она получает правильный результат:

Что впечатляет — весь процесс занял всего несколько секунд, и мне не пришлось вводить ни единого символа. LLM сама «разобралась» в названиях таблиц и столбцов, имея доступ к базе данных.
LLM-слой поверх PostgreSQL
Теперь, когда моя база данных добавлена как MCP-сервер, я могу «разговаривать» с данными на естественном языке, а LLM конвертирует запрос в SQL, выполняет его и интерпретирует результат в контексте исходного вопроса. Это работает не только для простых запросов, сводящихся к одному SQL-выражению, но и для более сложных или неоднозначных вопросов.
Вот примеры других запросов, которые я задавал:
«Был ли необычный всплеск регистраций за последние 2 месяца?»
«Какие подозрительные email-адреса регистрировались недавно? Есть ли паттерны?»
«На каких доменах больше всего регистраций?»
«Сколько промокодов ещё не активировано?»
Возможность «разговаривать» с девтулзами через IDE это почти «будущее». Не то чтобы я не мог получить ответы на эти вопросы раньше — я мог бы написать SQL-запросы, цепочку запросов или небольшой скрипт, который бы всё это автоматизировал и подвёл итоги. Но, скорее всего, я бы не стал этим заниматься — написание SQL занимает время. А вот просто задать вопрос — легко, и именно поэтому я сделал все именно так.
Представьте, что произойдет, когда вы сможете общаться с инструментами разработчика через IDE. Например, используя естественный язык для взаимодействия с:
Системой контроля версий
«Можешь создать pull request со всеми изменениями, кроме index.ts?»Базой данных
«Создай новую таблицу для логирования регистраций. Используй автоинкрементный счётчик как первичный ключ и сохраняй timestamp каждого события»Системой тикетов/багтрекинга
«Есть ли заведённые баги, связанные с этой фичей?»Системой мониторинга/логирования
«Были ли всплески login/logout-ошибок за последнюю неделю?»Системой feature flags / A/B-тестов
«Какие флаги были полностью выкатаны больше недели назад? Можешь помочь их найти и создать PR на удаление?»
Возможность использовать эти инструменты прямо из IDE делает работу заметно проще. А если можем использовать мы — смогут и AI-агенты, что означает рост сложности задач, которые они смогут решать.
По моим ощущениям, концепция MCP — это еще один шаг в сторону повышения продуктивности разработчиков. Она также может существенно усилить возможности AI-агентов, предоставляя им доступ к новым, более сложным тулзам.
Трудно представить, что коммерческие вендоры не начнут срочно внедрять поддержку MCP-серверов — ведь это даст их пользователям возможность гораздо проще использовать инструменты прямо из IDE.
Как разработчики, мы получим возможность экспериментировать с новым классом инструментов, способных прокачать нашу эффективность. Правда, есть и оговорка: MCP всё ещё на ранней стадии. Единый маркетплейс отсутствует, поддержка в IDE появилась всего несколько месяцев назад, а текущие реализации MCP вызывают серьезные опасения по части безопасности.
2. Происхождение MCP
Протокол MCP был задуман и реализован двумя инженерами-программистами из Anthropic — Дэвидом Сориа Парра и Джастином Спар-Саммерсом. Дэвид рассказал историю создания протокола в одном из выпусков подкаста Latent Space.
«В июле 2024 года я работал над внутренними девтулзами. В компании шёл активный процесс поощрения сотрудников к глубокой интеграции с нашими моделями и максимально активному dogfooding — использовать наши модели в своей повседневной работе.
У меня бэкграунд в developer tooling, и я очень быстро оценил, насколько крут Claude Desktop — особенно с такими возможностями, как Artifacts. Но одновременно начал испытывать раздражение: функциональность была ограниченной, и никак не расширялась. В то же время, моя основная работа проходит в IDE, у которой есть доступ, например, к локальной файловой системе, но нет ничего похожего на Artifacts.
В итоге я всё время копировал данные туда-сюда между Claude Desktop и IDE — и это начало серьёзно раздражать. Я-то знаю, как строить интеграции, но подумал: а что нужно сделать, чтобы сами IDE могли подключать интеграции?
Когда смотришь на проблему глубже, понимаешь, что задача интеграции AI — это задача масштаба M×N: у тебя есть M приложений (например, IDE) и N интеграций.
Пока я об этом размышлял, параллельно вёл внутренний проект по Language Server Protocol (LSP) — он, правда, никуда не дошёл. Но когда сложил всё это вместе — концепт LSP, неудовлетворённость интеграциями, — дал идее немного повариться, и в итоге появилась мысль: а почему бы не создать протокол, который всё это решит?»
Больше о происхождении протокола MCP можно узнать в соответствующем выпуске подкаста Latent Space.
Открытие исходного кода протокола MCP
Дэвид объединился с другим инженером — Джастином, и вместе они создали первые прототипы, продолжали итерации, и уже через шесть недель у них была первая рабочая интеграция MCP с Claude Desktop.
Они поделились прототипом внутри компании, и команда инженеров в Anthropic восприняла его с энтузиазмом. Пока шла подготовка к open source-релизу, на внутреннем хакатоне Anthropic было создано множество интересных приложений на базе MCP — включая MCP-сервер для управления 3D-принтером. Это подтвердило ожидания Дэвида и Джастина: MCP действительно может быть полезен в реальных сценариях.
После доработки и шлифовки, 25 ноября прошлого года они официально объявили об открытии исходного кода протокола MCP. На тот момент под «MCP Protocol» входили:
Веб-сайт с описанием протокола, инструкциями по реализации MCP-сервера и гидами для клиентов (например, для IDE по интеграции протокола)
Спецификация самого протокола
SDK для Python, TypeScript, Java, Kotlin и C#
Примеры реализаций серверов и клиентов в качестве референсов
Быстрое внедрение в индустрии
Всего за четыре месяца MCP прошёл путь от «удобного протокола, который использует Claude Desktop» до открытого стандарта, который начали внедрять все основные IDE и AI-инструменты, включая OpenAI.
Июль 2024: разработка MCP начинается внутри Anthropic.
Август:
– Редактор Zed добавляет поддержку MCP-серверов.
– Забавный факт: Дэвид и Джастин использовали Zed в работе и встроили в него MCP-клиент!Январь 2025:
– Zed официально анонсирует поддержку MCP
– Cline добавляет поддержку MCP
– Cursor интегрирует MCPФевраль:
– Anthropic выпускает Claude Code — агентную CLI-утилиту с поддержкой MCP
– Windsurf добавляет поддержку MCP
– В Neovim появляется поддержка MCP через плагинМарт:
– Cloudflare публикует гайд по деплою продакшн-готового удалённого MCP-сервера
– Sentry запускает свой MCP-сервер, становясь первым крупным вендором с продакшн-реализацией. Их сервер был основан на гайде Cloudflare
– OpenAI добавляет MCP-поддержку в свой Agents SDKАпрель:
– VS Code интегрирует поддержку MCP
– GitHub запускает официальный MCP-сервер (в публичной превью-версии)
– Zapier публикует каталог доступных MCP-серверов
– CI/CD-сервисы, такие как Bitrise и CircleCI, запускают собственные MCP-серверы
Единственный крупный игрок, пока не внедривший MCP, — IDE от JetBrains, но поддержка уже анонсирована и ожидается в следующем релизе. Такой стремительный уровень принятия индустрией — редкость. Очевидно, что MCP даёт разработчикам реальные преимущества при использовании AI-инструментов, и именно поэтому IDE-решения спешат внедрить поддержку. Примечательно, что именно те разработчики, которых IDE чаще всего упоминали как любимые в контексте AI-функциональности — Cursor, VS Code, Windsurf, Zed, Neovim и Cline — оказались в числе первых, кто внедрил MCP.
Но как это всё работает?
3. Чтобы понять MCP, нужно понять LSP
Давайте немного отвлечёмся и посмотрим на Language Server Protocol (LSP) — именно это решение вдохновило на создание MCP.
На протяжении десятилетий IDE сталкивались с одной и той же проблемой: они хотели поддерживать как можно больше языков программирования. А это автоматически означало необходимость реализовывать:
Подсветку синтаксиса
Автодополнение кода (autocomplete)
Inline-подсказки об ошибках и предупреждениях
Простые операции по рефакторингу
Если у нас есть M IDE и N языков программирования, то задача становится классической MxN-проблемой. Наивный подход заключался в том, чтобы каждая из M IDE реализовывала поддержку каждого из N языков вручную — насколько это возможно.
Для вендоров IDE это означало огромное количество работы, причём каждый раз, когда появлялся новый язык, приходилось заново проделывать весь цикл.

Для нас, разработчиков, это означало, что IDE хорошо поддерживали только ограниченное число языков. Например, удачи вам с написанием кода на C# в Android Studio!
Расширения и плагины стали временным решением, позволяющим IDE делегировать сложную логику: IDE с поддержкой плагин-системы позволяли сторонним разработчикам создавать плагины — например, для подсветки синтаксиса конкретного языка. Это было лучше, чем ничего, но всё равно требовало огромного объема работы. К тому же, далеко не все IDE предлагали такой SDK для расширений, который позволял бы реализовать полноценный опыт разработки — с нормальным автокомплитом, подсветкой и т. д.
В 2016 году Microsoft представила спецификацию Language Server Protocol (LSP) — протокола, изначально разработанного для Visual Studio Code. Идея была проста: каждый язык предоставляет свою LSP-реализацию, которая отвечает за языковые фичи. Редакторы кода теперь могли использовать LSP-сервер — готовую реализацию (чаще всего с открытым исходным кодом), вместо того чтобы писать всё с нуля.

Это кардинально изменило подход к разработке IDE:
Новые и существующие IDE могут легко добавлять поддержку языков, просто следуя протоколу LSP
Для большинства языков существует официальная LSP-реализация, разработанная мейнтейнерами языка (например, gopls для Go)
Часто существует несколько реализаций LSP, из которых разработчики или IDE-вендоры могут выбрать нужную. Например, для C# популярны OmniSharp и csharp-ls
Сегодня LSP поддерживают такие IDE и редакторы, как:
VS Code
Все производные от VS Code: Cursor, Windsurf и др.
Zed Editor
Инструменты JetBrains (IntelliJ IDEs)
Eclipse, Neovim, Emacs
Множество более лёгких редакторов: Atom, Helix Editor, Kate и другие
Некоторые исключения:
Visual Studio (не путать с VS Code) — флагманская IDE от Microsoft. Использует проприетарные средства для поддержки языков, LSP не поддерживает
Xcode — существует официальный LSP-сервер для Swift, но Xcode полагается на собственную, закрытую систему code intelligence
Android Studio — не поддерживает LSP, так как построена на базе IntelliJ Community Edition, которая предоставляет ограниченную языковую поддержку по сравнению с полнофункциональными IDE JetBrains