Ещё недавно работа с нейросетью выглядела как бесконечный пинг-понг. Попросил написать функцию, скопировал её в редактор, получил ошибку, скопировал ошибку обратно в чат и так по кругу. Если хочешь, чтобы ИИ посмотрел таблицу, задачу в трекере или заметку, — сначала сам найди, выгрузи и вставь. Модель была умной, но слепой и без рук.
MCP эту ситуацию изменил. Теперь агент сам открывает нужные файлы, читает актуальную документацию, заходит в браузер, смотрит задачи и выполняет действия — в тех пределах, которые вы ему разрешили. Я собрал в одном материале всё, что нужно знать об MCP-серверах, от объяснения «на пальцах» до создания собственного сервера и правил безопасности.
Что такое MCP простыми словами
MCP (Model Context Protocol) — это открытый стандарт, который описывает, как ИИ-приложения подключаются к внешним данным и инструментам. Он задаёт общий язык: как приложение узнаёт, что умеет внешняя программа, как просит её что-то сделать и в каком виде получает ответ.
MCP-сервер — это конкретная программа, которая говорит на этом языке и даёт ИИ доступ к чему-то одному: к папке на диске, к GitHub, к базе данных, к CRM, к браузеру. Протокол — это правила, сервер — исполнитель этих правил. Их часто путают, но разница важная: MCP один, а серверов — тысячи.
Самая популярная аналогия — USB-C для искусственного интеллекта. Раньше у каждого устройства был свой разъём и свой провод. Потом появился единый стандарт, и одна зарядка подошла ко всему. С MCP то же самое: сервер, написанный один раз, работает в Claude, Cursor, VS Code, ChatGPT и любом другом приложении с поддержкой протокола.
Если USB кажется слишком «железной» аналогией, представьте международную конференцию. Можно нанять переводчика для каждой пары языков, а можно договориться, что все говорят по-английски. MCP и есть такой общий язык между нейросетями и внешними программами.
На практике это выглядит так. Вы пишете в чате: «Найди в моих заметках всё про запуск лендинга и составь список открытых задач». Модель видит, что у неё подключён сервер с доступом к заметкам, сама вызывает поиск, читает найденные файлы и собирает ответ. Вам не нужно ничего копировать и вставлять.
Откуда взялся MCP и кто им управляет
Протокол представила компания Anthropic, создатель Claude, 25 ноября 2024 года. Первыми его подхватили разработчики инструментов для программистов, а в течение 2025 года поддержку добавили OpenAI, Google, Microsoft, GitHub, Cursor и многие другие. Сегодня MCP работает в Copilot, VS Code, Gemini, Cursor и ChatGPT, то есть давно перестал быть «фишкой Claude».
9 декабря 2025 года Anthropic передала MCP в Linux Foundation. Под протокол и ещё два проекта — goose от Block и AGENTS.md от OpenAI — создали отдельную организацию Agentic AI Foundation (AAIF). Для пользователей это сигнал стабильности: стандартом управляет нейтральная структура, как это было с Linux и Kubernetes, а не одна компания.
Ещё одна деталь, которая сбивает с толку новичков: у спецификации MCP нет номеров версий вроде 2.0. Ревизии называются датами выхода. По состоянию на осень 2026 года актуальна ревизия 2026-07-28, она сменила 2025-11-25. Это самое крупное обновление с момента запуска:
- ядро протокола стало stateless, то есть больше не держит постоянную сессию между клиентом и сервером: каждый запрос несёт весь нужный контекст;
- устарели три старые клиентские возможности — roots, sampling и logging;
- появились MCP Apps, с помощью которых инструменты могут показывать пользователю интерфейс, и Tasks для долгих операций;
- авторизацию через OAuth заметно ужесточили.
Масштаб экосистемы впечатляет: число отслеживаемых серверов выросло с нескольких сотен до более чем 10 000, а официальный SDK скачивают свыше 97 млн раз в месяц. Для сравнения, это уже уровень инфраструктуры, а не модного эксперимента.
Какую проблему решает MCP
Главная проблема, которую закрывает MCP, называется N×M. Допустим, есть 5 ИИ-приложений и 20 сервисов, к которым их хочется подключить. Без общего стандарта нужно написать 5 × 20 = 100 отдельных интеграций, и каждую потом поддерживать. С MCP достаточно 20 серверов и поддержки протокола в 5 приложениях: 25 компонентов вместо 100. Каждый новый сервер сразу становится доступен во всех клиентах.
Вторая проблема — изоляция модели. Языковая модель знает только то, на чём её обучили, и то, что вы вставили в чат. Она не видит вашу почту, задачи в Jira, свежую документацию библиотеки или данные в CRM. MCP даёт ей контролируемый доступ к живому контексту и возможность не только читать, но и действовать: создать задачу, отправить сообщение, запустить тест.
Почему обычных API недостаточно
Логичный вопрос: у большинства сервисов уже есть API, зачем ещё один слой? Дело в том, кто потребитель. API проектировали для программ, которые написал человек. Программа заранее знает, какой эндпоинт вызвать и какие параметры передать.
Модель работает иначе. Она рассуждает вероятностно, на ходу решает, какой инструмент нужен, и может выстраивать цепочки вызовов. Ей нужно сначала узнать, что вообще доступно, прочитать понятное описание каждой возможности и только потом действовать. Именно это и даёт MCP:
- динамическое обнаружение — клиент спрашивает у сервера список инструментов, а не хранит его в коде;
- единые описания — у каждого инструмента есть название, текстовое описание и схема входных параметров в формате JSON Schema;
- единый формат вызова и ответа — неважно, GitHub это, календарь или база данных.
При этом MCP не заменяет API. Обычно MCP-сервер внутри вызывает тот же REST или GraphQL API сервиса, просто упаковывает его в форму, удобную для модели.
Как устроен MCP
В основе MCP — классическая клиент-серверная схема с тремя участниками.
- Хост (host) — приложение, в котором вы общаетесь с ИИ: Claude Desktop, Claude Code, Cursor, VS Code с Copilot, ChatGPT. Хост отвечает за интерфейс, решает, каким серверам доверять, и спрашивает у вас разрешения на действия.
- Клиент (client) — компонент внутри хоста, который держит соединение с одним конкретным сервером. Связь всегда один к одному: подключили три сервера — внутри хоста работают три клиента.
- Сервер (server) — отдельная лёгкая программа, которая даёт доступ к одному инструменту или источнику данных. Она бывает локальной, то есть запускается на вашем компьютере, или удалённой, то есть работает в интернете и подключается по адресу.
Важный момент: модель никогда не общается с сервером напрямую. Между ними всегда стоит хост. Модель лишь говорит «хочу вызвать такой-то инструмент с такими-то параметрами», а реальный вызов делает клиент. Поэтому ключи доступа и пароли хранятся у сервера, а не в чате.

Архитектура MCP · хост, клиенты, серверы, источники данных
На схеме видно главное: внутри хоста столько клиентов, сколько подключено серверов, а модель общается с внешним миром только через них.
Два слоя протокола
Слой данных определяет, о чём говорят клиент и сервер. Сообщения передаются в формате JSON-RPC 2.0. Здесь описаны жизненный цикл соединения и основные сущности: инструменты, ресурсы и промпты.
Транспортный слой определяет, как сообщения доставляются. Вариантов два:
- stdio — стандартный ввод-вывод. Хост запускает сервер как процесс на вашем компьютере и общается с ним напрямую, без сети. Так работают почти все локальные серверы.
- Streamable HTTP — для удалённых серверов. Запросы идут обычным HTTP, а ответы при необходимости могут приходить потоком. Старый транспорт HTTP+SSE устарел, и в новых инструкциях вы его почти не встретите.
Что происходит, когда вы пишете запрос
- При подключении клиент спрашивает у сервера, что тот умеет. Сервер возвращает список инструментов с описаниями и схемами параметров.
- Вы пишете запрос в чате. Хост отправляет модели ваш текст вместе с описаниями всех доступных инструментов.
- Модель решает, нужен ли инструмент. Если да, она возвращает не текст, а вызов: имя инструмента и аргументы.
- Хост при необходимости спрашивает вашего подтверждения, а клиент передаёт вызов серверу.
- Сервер выполняет работу — читает файл, делает запрос к API, открывает страницу — и возвращает результат.
- Результат уходит модели. Она либо отвечает вам, либо вызывает следующий инструмент, и цикл повторяется.
Вот как упрощённо выглядит обмен на уровне протокола. Сначала клиент запрашивает список инструментов:
{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}
Затем, когда модель решила действовать, клиент вызывает конкретный инструмент:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "search_notes",
"arguments": {"query": "лендинг"}
}
}
Запоминать эти форматы не нужно: их за вас делают SDK и ИИ-приложения. Но понимание цикла сильно помогает, когда что-то не работает.
Инструменты, ресурсы и промпты: что именно даёт сервер
MCP-сервер может предоставить три вида возможностей. Их называют примитивами, и главное различие между ними — кто решает, когда их использовать.
| Примитив | Что это | Кто управляет | Пример |
|---|---|---|---|
| Инструменты (tools) | Функции, которые выполняют действие или получают данные | Модель сама решает, когда вызвать | Создать задачу, выполнить SQL-запрос, открыть страницу в браузере |
| Ресурсы (resources) | Данные, которые служат контекстом | Приложение решает, что подгрузить | Содержимое файла, схема базы данных, статья из базы знаний |
| Промпты (prompts) | Готовые шаблоны запросов под типовую задачу | Пользователь выбирает сам | «Сделай код-ревью», «Подготовь еженедельный отчёт» |
Инструменты — самый востребованный примитив. Большинство серверов, которые вы встретите, предоставляют только их. Каждый инструмент описан именем, понятным текстом о том, что он делает, и схемой параметров. По этому описанию модель и решает, подходит ли он для задачи. Поэтому качество описаний напрямую влияет на то, будет ли сервер вообще использоваться.
Ресурсы похожи на файлы, которые можно приложить к разговору. Модель не «вызывает» их сама — их подгружает приложение или выбирает пользователь.
Промпты — это заготовки, которые автор сервера сделал под свои инструменты. В Claude Code, например, они появляются как команды через косую черту.
Разберу на одном примере. Допустим, у вас есть сервер для поиска вакансий. Список Telegram-каналов с вакансиями — это ресурс. Скрипт, который собирает свежие объявления из этих каналов, — инструмент. Инструкция «отфильтруй вакансии под мой опыт и зарплатные ожидания и оформи таблицей» — промпт.
Возможности со стороны клиента
Кроме того, что сервер предоставляет клиенту, протокол описывает и обратное направление. Например, сервер может попросить у пользователя недостающие данные через хост — это называется elicitation. Раньше сервер мог также попросить модель хоста сгенерировать текст (sampling) или узнать, с какими папками ему разрешено работать (roots). В ревизии 2026-07-28 roots, sampling и logging объявлены устаревшими, поэтому строить на них новые решения я не советую.
Зато в новой ревизии появились две важные вещи:
- MCP Apps — инструмент может заранее объявить свой интерфейс. Хост показывает его пользователю прямо в чате: форму, таблицу, карточку. Хосту удобно заранее загрузить и проверить такой шаблон до запуска инструмента.
- Tasks — механизм для долгих операций, которые не укладываются в один быстрый ответ: генерация отчёта, сборка проекта, обработка большого файла.
Чем MCP отличается от API, function calling, RAG и других технологий
Вокруг ИИ-агентов много похожих терминов, и их постоянно путают. Я свёл главные в одну таблицу. Коротко: MCP — это стандартный разъём для подключения инструментов, а не замена всему остальному.
| Технология | Что это | Чем отличается от MCP | Когда выбирать |
|---|---|---|---|
| API | Правила, по которым одна программа обращается к другой | У каждого сервиса свой API. MCP-сервер обычно оборачивает API в единый формат, понятный модели | Интеграция между обычными программами без ИИ |
| Function calling | Возможность модели вернуть вызов функции вместо текста | Это механизм внутри конкретной модели. MCP стандартизирует, откуда берутся функции и как их подключить к любому приложению | Свой продукт с парой жёстко зашитых функций |
| Плагины и GPTs | Расширения для конкретной платформы | Привязаны к одной экосистеме. MCP-сервер работает в любом совместимом клиенте | Решение живёт только внутри одной платформы |
| RAG | Поиск по базе знаний и подстановка найденного в запрос | RAG отвечает на вопрос «что подложить модели». MCP — «как подключить источник». Поиск по базе знаний вполне может работать как MCP-сервер | Нужны ответы по большому массиву документов |
| Skills и AGENTS.md | Файлы с инструкциями: как выполнять задачу, какие правила соблюдать в проекте | Описывают как работать, но не дают доступа к системам. MCP даёт доступ, skills — сценарий. Они отлично дополняют друг друга | Повторяющиеся процессы с чёткими правилами |
| A2A | Протокол общения агентов между собой | MCP связывает агента с инструментами, A2A — агента с другим агентом | Несколько агентов делят работу |
| n8n, Zapier, вебхуки | Автоматизация по заранее заданному сценарию | Сценарий жёсткий и предсказуемый. Через MCP модель сама решает, что и когда вызвать | Процесс всегда одинаковый и не требует рассуждений |
Отдельно скажу про последний пункт, потому что здесь чаще всего ошибаются. Если задача всегда решается одной и той же последовательностью шагов — например, новая заявка с сайта уходит в CRM и в Telegram, — классическая автоматизация надёжнее и дешевле. MCP раскрывается там, где нужно рассуждение: найти, сравнить, выбрать, отреагировать на нестандартную ситуацию. Кстати, у n8n и похожих платформ уже есть поддержка MCP в обе стороны, так что выбирать «или-или» не обязательно.
MCP и ИИ-агенты
MCP чаще всего обсуждают вместе с ИИ-агентами, и это не случайно. Агент — это приложение, в котором языковая модель не просто отвечает, а сама планирует шаги и выполняет их, пока задача не будет решена. Упрощённо у агента три опоры:
- планирование — разбить задачу на шаги и решить, в каком порядке их выполнять;
- память — краткосрочный контекст текущей задачи и долгосрочные знания о пользователе и проекте;
- инструменты — всё, через что агент взаимодействует с внешним миром.
MCP закрывает третью опору. Без инструментов агент может только рассуждать вслух. С ними он открывает файлы, пишет в базу, отправляет сообщения и проверяет результат.
Для тех, кто строит агентов сам, у такого подхода есть приятный архитектурный бонус: логика доступа к данным отделяется от логики агента. Инструменты живут в MCP-серверах, и их можно развивать независимо:
- добавлять новые инструменты и источники данных, не трогая агента;
- версионировать сервер и откатывать неудачные изменения;
- управлять доступом и безопасностью в одном месте — на сервере;
- переиспользовать один и тот же сервер в разных агентах и приложениях.
А для обычного пользователя это значит простую вещь: подключив сервер один раз, вы прокачиваете сразу все свои ИИ-инструменты, которые поддерживают MCP.
Какие бывают MCP-серверы и где они полезны
Серверы удобно делить по трём признакам.
По назначению:
- файловые — чтение, поиск и запись файлов в разрешённой папке;
- базы данных — запросы к PostgreSQL, MySQL, MongoDB и другим хранилищам;
- сервисы через API — GitHub, Jira, Notion, Slack, CRM, облачные платформы;
- инструменты действий — терминал, отправка писем, создание задач;
- браузерные — управление браузером: открыть страницу, кликнуть, заполнить форму;
- документация и знания — актуальная документация библиотек, поиск по базе знаний;
- «мыслительные» — помогают модели рассуждать пошагово, а не выдавать первый пришедший в голову ответ.
По способу запуска: локальные, которые работают на вашем компьютере через stdio, и удалённые, к которым вы подключаетесь по URL.
По происхождению: официальные серверы от самих сервисов, референсные серверы от команды MCP и community-серверы от сторонних разработчиков. Последних больше всего, и их качество очень разное.
Сценарии по ролям
Разработчикам. Сервер GitHub позволяет агенту смотреть issues и pull request’ы, читать нужные файлы без клонирования репозитория, создавать ветки. Context7 подтягивает документацию к той версии библиотеки, которую вы используете, — модель перестаёт выдумывать несуществующие методы. Playwright открывает ваше приложение в браузере, проходит сценарий и показывает, где он ломается. Серверы Sentry и баз данных дают агенту логи ошибок и реальные данные, а не ваш пересказ.
Бизнесу и менеджерам. Через серверы CRM, Jira, Confluence, Slack и Google Drive агент собирает статус по проектам, находит просроченные задачи, превращает протокол встречи в задачи с исполнителями, готовит отчёт по воронке продаж. Запрос «какие сделки зависли больше двух недель и почему» перестаёт быть часом ручной работы.
Маркетологам и SEO-специалистам. Агент может одновременно работать с выдачей, аналитикой, сайтом и документацией поисковиков. Пример с сервером пошагового мышления: на вопрос «почему упал трафик» обычная модель часто сразу отвечает «апдейт алгоритма, ждите». С пошаговым рассуждением она проверяет даты апдейтов, технические ошибки, какие запросы просели, смотрит конкурентов и только потом делает вывод.
Исследователям и аналитикам. Серверы веб-поиска, научных баз вроде arXiv и новостей дают модели свежие данные вместо устаревшего обучающего набора.
Дизайнерам. Серверы Figma передают агенту макеты и дизайн-токены, а Blender позволяет управлять 3D-сценой текстовыми командами.
Для личной продуктивности. Obsidian, Notion, календарь и почта превращают ИИ в ассистента, который знает ваши заметки и расписание.
Серверы, с которых стоит начать
| Сервер | Что делает | Кому полезен | Запуск |
|---|---|---|---|
| Filesystem | Даёт доступ к выбранной папке: чтение, поиск, запись | Всем, особенно для заметок и документов | Локально, Node.js |
| Context7 | Подтягивает актуальную документацию библиотек и фреймворков | Разработчикам | Удалённо, по URL |
| GitHub | Работа с репозиториями, issues, pull request’ами | Разработчикам | Удалённо или локально |
| Playwright | Управление браузером: страницы, клики, формы, скриншоты | Разработчикам, тестировщикам, для сбора данных | Локально, Node.js |
| Sequential Thinking | Пошаговое рассуждение с возвратом к предыдущим шагам | Для сложных аналитических задач | Локально, Node.js |
| Notion, Atlassian, Slack | Работа с базой знаний, задачами, чатами | Командам и менеджерам | Удалённо, официальные серверы |
| Sentry | Ошибки и производительность приложения | Разработчикам | Удалённо |
| Figma | Макеты, компоненты, дизайн-токены | Дизайнерам и фронтендерам | Зависит от варианта |
Мой совет: не подключайте всё подряд. Начните с одного-двух серверов под конкретную задачу. Почему это важно, расскажу в разделе об ограничениях.
Где искать готовые серверы и как выбрать надёжный
Если задача типовая, сервер под неё почти наверняка уже написан. Искать вручную по GitHub не обязательно, есть каталоги:
- Official MCP Registry — официальный реестр, который поддерживают участники экосистемы MCP. Хорошая отправная точка.
- Glama — большой каталог с фильтрами по категории, языку и способу запуска, со списком инструментов каждого сервера.
- PulseMCP — удобно смотреть новинки и то, что набирает популярность.
- Docker MCP Catalog — серверы в контейнерах. Их меньше, но они изолированы от системы, что плюс для безопасности.
- Каталоги внутри приложений — коннекторы в Claude и ChatGPT, каталог Cursor, галерея в VS Code. Там часто можно подключить сервер в один клик.
Чек-лист перед установкой
MCP-сервер получает реальный доступ к вашим файлам, аккаунтам или данным. Поэтому перед установкой незнакомого сервера я всегда проверяю пять вещей:
- Кто автор. Официальный сервер от самого сервиса — лучший вариант. Если автор неизвестен, смотрите на его профиль и другие проекты.
- Открыт ли код. Если исходников нет, сервер лучше не ставить.
- Когда было последнее обновление. Заброшенный год назад сервер может не работать с новой ревизией протокола.
- Какие права он просит. Серверу для чтения документации не нужен доступ к терминалу.
- Точное название пакета. Злоумышленники публикуют пакеты с похожими именами, отличающиеся одной буквой.
Какие приложения поддерживают MCP
| Приложение | Где подключаются серверы | Особенности |
|---|---|---|
| Claude Desktop | Файл конфигурации и раздел коннекторов | Локальные серверы через конфиг, удалённые — через коннекторы |
| Claude Code | Команда claude mcp add в терминале |
Разные области видимости: проект, пользователь |
| Claude в браузере | Раздел коннекторов | Только удалённые серверы |
| ChatGPT | Коннекторы, режим разработчика | Удалённые серверы |
| Cursor | Настройки, файл mcp.json |
Глобально или для одного проекта |
| VS Code + GitHub Copilot | Файл .vscode/mcp.json, команда MCP: Add Server |
Работает в агентном режиме чата |
| Windsurf, Zed, JetBrains, Gemini CLI, Codex | Настройки или конфиг приложения | Принцип тот же, отличается формат файла |
Интерфейсы этих приложений меняются часто, поэтому названия пунктов меню у вас могут немного отличаться. Логика при этом остаётся прежней.
Что нужно подготовить перед подключением
Для удалённого сервера ничего ставить не нужно: вы просто указываете его адрес. Для локального нужна среда, в которой запускается его код. Без неё сервер не стартует, и это самая частая причина ошибок у новичков.
- Node.js — для серверов на JavaScript и TypeScript. Таких большинство, обычно они запускаются командой
npx. Скачать можно на nodejs.org. - Python — для серверов на Python. Их часто запускают через
uvxиз менеджера пакетов uv. Скачать — на python.org. - Docker — если сервер распространяется как контейнер.
Проверить, что всё установлено, можно в терминале:
node --version
python --version
Если в ответ появились номера версий, всё готово. Если терминал пишет, что команда не найдена, сначала установите нужную среду и перезапустите терминал.
Как устроена конфигурация
Конфигурация — это небольшой JSON-блок, который сообщает ИИ-приложению, какой сервер подключить и как его запустить. Не путайте её с самим протоколом: протокол одинаков для всех и работает в фоне, а конфигурация — просто инструкция по запуску конкретной программы.
Вот типичный пример для локального сервера:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/kirill/Documents/notes"],
"env": {}
}
}
}
mcpServers— раздел, в котором перечислены все серверы.filesystem— имя сервера. Его придумываете вы, оно отображается в интерфейсе.command— чем запускать сервер:npx,uvx,python,docker.args— аргументы запуска. Здесь флаг-yразрешает npx скачать пакет без вопросов, дальше идёт имя пакета и путь к папке, к которой сервер получит доступ.env— переменные окружения. Сюда кладут API-ключи и токены, если сервер их требует.
Для удалённого сервера вместо команды указывают адрес:
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp"
}
}
}
Писать конфигурацию с нуля почти никогда не приходится. Авторы серверов публикуют готовые блоки под разные приложения в README репозитория или на странице в каталоге. Ваша задача — скопировать, подставить свои пути и ключи и вставить в нужный файл. Один нюанс: VS Code использует ключ servers вместо mcpServers, об этом ниже.
Как подключить MCP-сервер: пошаговые инструкции
Во всех примерах ниже я подключаю один и тот же сервер Filesystem, чтобы было удобно сравнивать. Он даёт ИИ доступ к одной выбранной папке. Это хороший первый сервер: полезный, безопасный при правильной настройке и не требует ключей.
Cursor
В Cursor сервер можно подключить для всех проектов сразу или только для одного.
Для всех проектов:
- Откройте настройки Cursor и перейдите в раздел Tools & MCP.
- Нажмите Add Custom MCP (в некоторых версиях — New MCP Server). Откроется файл
~/.cursor/mcp.json. - Вставьте конфигурацию внутрь раздела
mcpServersи укажите путь к своей папке:
{
"mcpServers": {
"notes": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/kirill/Documents/notes"]
}
}
}
- Сохраните файл и вернитесь в настройки. Рядом с сервером должен появиться зелёный индикатор и число доступных инструментов. Если его нет, перезапустите Cursor.
Для одного проекта: в корне проекта создайте папку .cursor, а в ней файл mcp.json с той же структурой. Такой сервер будет виден только в этом проекте, а файл можно закоммитить, чтобы у всей команды была одинаковая настройка. Только не кладите туда ключи.
Чтобы добавить второй сервер, поставьте запятую после закрывающей скобки первого и допишите следующий блок внутри того же mcpServers.
Claude Desktop: локальный сервер
- Откройте Settings → Developer и нажмите Edit Config. Если раздела Developer не видно, включите режим разработчика через меню Help → Troubleshooting → Enable Developer Mode.
- Откроется файл
claude_desktop_config.json. Он лежит в~/Library/Application Support/Claude/на macOS и в%APPDATA%\Claude\на Windows. - В файле уже могут быть другие настройки. Не удаляйте их: добавьте раздел
mcpServersна верхнем уровне через запятую. - Сохраните файл и полностью перезапустите Claude Desktop — не просто закройте окно, а выйдите из приложения. После этого инструменты сервера появятся в меню инструментов в окне чата.
Claude Desktop и Claude в браузере: удалённый сервер
Удалённые серверы подключаются без файлов, через раздел коннекторов. Покажу на примере Context7 — это сервис с актуальной документацией для разработчиков.
- Откройте раздел Connectors в настройках (в новых версиях он находится в меню Customize).
- Нажмите Add custom connector.
- Введите название, например
Context7, и адрес сервераhttps://mcp.context7.com/mcp. - Нажмите Add. Если сервер требует вход, откроется окно авторизации.
Коннекторы, добавленные в аккаунт, доступны и в Claude Desktop, и в веб-версии.
Claude Code
В Claude Code серверы добавляются командой в терминале:
# локальный сервер, доступный во всех ваших проектах
claude mcp add --scope user notes -- npx -y @modelcontextprotocol/server-filesystem ~/Documents/notes
# удалённый сервер по HTTP
claude mcp add --transport http context7 https://mcp.context7.com/mcp
Разберу первую команду. claude mcp add добавляет сервер, notes — его имя. Двойной дефис -- отделяет параметры Claude Code от команды запуска самого сервера: всё, что после него, относится к серверу.
Параметр --scope задаёт, где сервер будет виден:
- local — значение по умолчанию, только текущий проект и только у вас;
- project — сервер записывается в файл
.mcp.jsonв корне проекта, и его получают все, кто работает с репозиторием; - user — все ваши проекты на этом компьютере.
Полезные команды: claude mcp list показывает все подключённые серверы и их статус, claude mcp remove notes удаляет сервер, а команда /mcp внутри сессии Claude Code показывает состояние серверов и помогает пройти авторизацию.
VS Code с GitHub Copilot
- В корне проекта создайте файл
.vscode/mcp.json. Альтернатива — выполнить команду MCP: Add Server из палитры команд, и VS Code проведёт вас по шагам. - Обратите внимание: здесь раздел называется
servers, а неmcpServers, и у каждого сервера указывается тип:
{
"servers": {
"notes": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}/docs"]
},
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
}
}
}
- Откройте чат Copilot и переключитесь в режим Agent. Инструменты MCP-серверов появятся в списке инструментов, где их можно включать и выключать.
ChatGPT
ChatGPT работает с удалёнными MCP-серверами. Готовые подключения доступны в разделе приложений и коннекторов в настройках. Чтобы добавить свой сервер по адресу, нужно включить режим разработчика в расширенных настройках этого раздела, а затем создать коннектор с URL сервера. Доступность режима зависит от тарифа, а расположение пунктов меню периодически меняется, поэтому сверяйтесь с актуальной справкой OpenAI.
Особенности Windows
На Windows подключение чаще всего ломается на трёх вещах:
- Запуск npx. Некоторые приложения не могут запустить
npxнапрямую. Помогает запуск через командную строку:"command": "cmd"и"args": ["/c", "npx", "-y", ...]. - Пути в JSON. Обратный слеш нужно удваивать:
"C:\\Users\\Kirill\\Notes". Либо используйте прямые слеши:"C:/Users/Kirill/Notes". - Команда claude. Если в PowerShell команда
claudeвыдаёт ошибку о политике выполнения скриптов, попробуйте написатьclaude.cmdвместоclaude.
Удалённые серверы и авторизация
Удалённые серверы удобнее локальных: ничего не нужно устанавливать, они работают и в веб-версиях приложений, и на телефоне, а обновляет их владелец сервиса. Поэтому крупные компании — GitHub, Notion, Atlassian, Sentry и многие другие — всё чаще выпускают именно удалённые серверы.
Но удалённому серверу нужно знать, кто вы и к чему вам можно давать доступ. Для этого в MCP используется OAuth — тот же механизм, что и в кнопках «Войти через Google». Процесс выглядит так:
- Вы добавляете сервер по адресу.
- Приложение открывает страницу входа сервиса.
- Вы входите в свой аккаунт и подтверждаете, какие права выдаёте.
- Приложение получает токен и дальше обращается к серверу от вашего имени. Пароль при этом никуда не передаётся.
Некоторые серверы вместо OAuth используют API-ключ. Его обычно передают в заголовке запроса или, для локальных серверов, в разделе env конфигурации.
Несколько правил, которых я придерживаюсь при работе с удалёнными серверами:
- выдавайте минимальные права, которые предлагает сервис: если нужен только просмотр, не давайте права на запись;
- периодически проверяйте список приложений, которым выдан доступ, в настройках самого сервиса, и отзывайте ненужное;
- не публикуйте ключи в файлах проекта, которые попадают в Git;
- для рабочих аккаунтов согласуйте подключение с администратором: в компаниях доступ к коннекторам часто управляется централизованно.
Как создать свой MCP-сервер
Свой сервер имеет смысл писать, когда готового нет: нужно подключить внутреннюю систему компании, нестандартный API или собственную бизнес-логику. Для типовых задач проще взять готовое решение. Хорошая новость: знать машинное обучение не нужно, хватит базового программирования.
Выбор языка
Официальные SDK есть для Python, TypeScript, Java, Kotlin, C#, Go, PHP, Ruby, Rust и Swift. Для первого сервера я рекомендую Python: в его SDK есть модуль FastMCP, с которым сервер умещается в несколько десятков строк. TypeScript — хороший выбор, если ваша команда пишет на JavaScript, а большинство готовых серверов как раз на нём.
Пример: сервер для заметок на Python
Сделаем сервер, который сохраняет заметки в папку на компьютере и ищет по ним. На нём видны все три примитива: инструменты, ресурс и промпт.
Шаг 1. Установите SDK:
pip install "mcp[cli]"
Шаг 2. Создайте файл notes_server.py:
from datetime import date
from pathlib import Path
from mcp.server.fastmcp import FastMCP
NOTES_DIR = Path.home() / "mcp-notes"
NOTES_DIR.mkdir(exist_ok=True)
mcp = FastMCP("Notes")
def safe_path(title: str) -> Path:
"""Не даёт выйти за пределы папки с заметками."""
path = (NOTES_DIR / f"{title}.md").resolve()
if NOTES_DIR.resolve() not in path.parents:
raise ValueError("Недопустимое название заметки")
return path
@mcp.tool()
def add_note(title: str, text: str) -> str:
"""Сохраняет заметку в Markdown. Используй, когда пользователь просит
записать, запомнить или сохранить мысль, идею или задачу."""
safe_path(title).write_text(
f"# {title}\n\n{date.today()}\n\n{text}\n", encoding="utf-8"
)
return f"Заметка «{title}» сохранена"
@mcp.tool()
def search_notes(query: str) -> list[str]:
"""Ищет заметки по слову или фразе без учёта регистра.
Возвращает названия найденных заметок."""
q = query.lower()
return [
p.stem
for p in NOTES_DIR.glob("*.md")
if q in p.read_text(encoding="utf-8").lower()
]
@mcp.resource("notes://{title}")
def read_note(title: str) -> str:
"""Полный текст заметки по её названию."""
return safe_path(title).read_text(encoding="utf-8")
@mcp.prompt()
def weekly_review() -> str:
"""Шаблон еженедельного разбора заметок."""
return (
"Найди мои заметки за последнюю неделю, сгруппируй их по темам, "
"выдели нерешённые задачи и предложи три приоритета на следующую неделю."
)
if __name__ == "__main__":
mcp.run()
Что здесь происходит:
- декоратор
@mcp.tool()превращает функцию в инструмент, который может вызвать модель. Описание инструмента SDK берёт из docstring, а схему параметров — из аннотаций типов; @mcp.resource()объявляет ресурс с шаблоном адреса:notes://Идеивернёт текст заметки «Идеи»;@mcp.prompt()добавляет готовый шаблон запроса, который пользователь может выбрать сам;- функция
safe_path— простая, но важная защита: она не позволит модели записать или прочитать файл за пределами папки с заметками.
Шаг 3. Проверьте сервер в MCP Inspector — это официальный инструмент для отладки. Команда ниже откроет в браузере интерфейс, где можно вызвать каждый инструмент вручную и посмотреть ответ:
mcp dev notes_server.py
Шаг 4. Подключите сервер к своему приложению. Для Cursor и Claude Desktop конфигурация выглядит так (путь замените на свой):
{
"mcpServers": {
"notes": {
"command": "python",
"args": ["/Users/kirill/projects/notes_server.py"]
}
}
}
Для Claude Code: claude mcp add notes -- python /Users/kirill/projects/notes_server.py.
Теперь можно написать в чате: «Запиши идею: сделать серию статей про ИИ-агентов», а через неделю — «Что у меня в заметках про статьи?».
Как писать описания инструментов
Это самая недооценённая часть разработки. Модель выбирает инструмент только по его названию и описанию, поэтому:
- пишите в описании, когда использовать инструмент, а не только что он делает;
- называйте инструменты глаголами и конкретно:
search_notesлучше, чемnotes; - описывайте каждый параметр и допустимые значения;
- возвращайте понятные ошибки текстом: «Заметка не найдена, проверьте название», а не код 500 — модель сможет исправиться сама;
- не делайте десятки мелких инструментов там, где хватит трёх продуманных.
Удалённый сервер
Чтобы сервер был доступен по сети, его запускают с транспортом Streamable HTTP. В Python SDK для этого достаточно изменить последнюю строку на mcp.run(transport="streamable-http") и развернуть сервер на хостинге, например в Docker-контейнере. С ревизии 2026-07-28 протокол не хранит сессию, поэтому сервер легко масштабировать: запросы может обрабатывать любой экземпляр. Для доступа извне обязательно добавьте авторизацию через OAuth и HTTPS.
Когда сервер готов, его можно опубликовать в официальном реестре MCP, чтобы другие нашли его через каталоги.
Главные риски и как их снизить
Дать языковой модели право выполнять SQL-запросы или записывать файлы на диск — это серьёзно. Безопасность остаётся самым слабым местом экосистемы MCP, и дело не столько в протоколе, сколько в том, как его используют.
Первое, что важно понимать: локальный сервер работает с правами вашего пользователя. Если вы дали ему доступ ко всему домашнему каталогу, то он, а значит и модель, может прочитать всё, что можете прочитать вы, включая ключи SSH и файлы браузера.
Основные угрозы
| Угроза | Как работает | Как защититься |
|---|---|---|
| Prompt injection | Вредоносная инструкция спрятана в данных: на веб-странице, в письме, в issue на GitHub. Модель читает её и выполняет | Подтверждать действия вручную, не давать агенту одновременно доступ к секретам и к непроверенному контенту |
| Отравление инструментов (tool poisoning) | В описание инструмента встроены скрытые инструкции для модели, которых пользователь не видит | Ставить серверы только из проверенных источников и читать их код |
| Подмена после установки (rug pull) | Сервер сначала безобиден, а после обновления начинает вести себя иначе | Фиксировать версии пакетов, не обновлять вслепую |
| Тайпсквоттинг | Пакет с почти таким же названием, как у популярного сервера | Сверять точное имя пакета с официальным репозиторием |
| Утечка данных | Модель передаёт данные из одного инструмента в другой, например из базы в чат или на внешний сайт | Минимальные права, разделение серверов по задачам |
| Избыточные права | Сервер получил больше доступа, чем ему нужно | Отдельная папка, read-only доступ, отдельные токены |
Особенно опасно сочетание трёх условий в одном агенте: доступ к приватным данным, обработка непроверенного контента из интернета или писем и возможность отправлять данные наружу. Если все три есть одновременно, prompt injection может привести к утечке без вашего ведома. Разрывайте эту цепочку: хотя бы одно из условий должно отсутствовать.
Чек-лист для пользователя
- Ставлю серверы из официальных репозиториев и каталогов, проверяю автора и дату обновления.
- Даю файловым серверам доступ только к отдельной рабочей папке, а не ко всему диску.
- Храню ключи в переменных окружения, а не в общих файлах и не в коде.
- Не включаю автоматическое подтверждение для действий, которые что-то меняют или удаляют.
- Отключаю серверы, которыми не пользуюсь.
Чек-лист для разработчика сервера
- Принцип минимальных прав: для аналитики достаточно read-only пользователя базы данных.
- Валидация всех входных параметров и защита от выхода за пределы разрешённых путей.
- Опасные инструменты — удаление, отправка, оплата — помечены и требуют подтверждения.
- Журналирование всех вызовов: кто, когда и с какими параметрами.
- Токены пользователя не пробрасываются напрямую в сторонние API.
- Запуск в изолированной среде, например в контейнере.
Для компаний
Если через MCP проходят персональные данные клиентов, это уже вопрос не только удобства, но и закона: 152-ФЗ в России, закон о защите персональных данных в Беларуси, GDPR для работы с ЕС. Минимальный набор мер:
- передавать модели только те данные, которые нужны для задачи, а номера карт и паспортов маскировать на стороне сервера;
- управлять доступом централизованно, через корпоративный шлюз или единую систему управления доступом;
- вести аудит: кто из сотрудников какими инструментами пользовался;
- заранее проверить, где обрабатываются данные — в том числе на стороне провайдера ИИ-модели.
Ограничения, стоимость и типичные ошибки
Чем больше серверов, тем хуже
Это самая неочевидная вещь для новичков. Описания всех инструментов всех подключённых серверов отправляются модели с каждым запросом. Подключили десять серверов по 15 инструментов — и модель получает полторы сотни описаний ещё до того, как прочитала ваш вопрос. Последствия:
- растёт расход токенов, а значит и стоимость;
- заполняется контекстное окно, и модели остаётся меньше места для самой задачи;
- модели сложнее выбрать правильный инструмент, она начинает путаться и ошибаться.
Поэтому правило простое: подключайте серверы под задачу и отключайте те, что сейчас не нужны. Многие клиенты позволяют включать и выключать отдельные инструменты, а некоторые уже подгружают описания по требованию.
Другие ограничения
- MCP не лечит галлюцинации. Модель может неправильно понять данные или вызвать не тот инструмент. Для важных решений нужна проверка человеком.
- У действий нет кнопки «Отменить». Если агент удалил файл или отправил письмо, протокол это не откатит. Отсюда важность подтверждений и резервных копий.
- Качество серверов разное. Community-сервер может быть заброшен или работать с ошибками.
- Стандарт активно развивается. Ревизия 2026-07-28 принесла несовместимые изменения, и старые серверы постепенно придётся обновлять.
Сколько это стоит
Сам протокол бесплатный, и большинство серверов — open source. Деньги уходят на другое:
- подписку или токены ИИ-модели — основная статья расходов, и она растёт с числом подключённых инструментов и объёмом данных, которые серверы возвращают;
- платные API, к которым обращается сервер, например поисковые или аналитические сервисы;
- хостинг, если вы разворачиваете свой удалённый сервер.
Экономить помогают три вещи: подключать только нужные серверы, ограничивать объём данных, который возвращает инструмент, и кэшировать повторяющиеся запросы на стороне сервера.
Если что-то не работает
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Сервер не появился в списке | Ошибка в JSON: лишняя или пропущенная запятая, скобка | Проверить файл любым JSON-валидатором |
| Сервер с красным индикатором или ошибкой запуска | Не установлен Node.js или Python | Выполнить node --version и python --version, установить недостающее |
| Ошибка «spawn npx ENOENT» на Windows | Приложение не находит npx | Запускать через "command": "cmd" и "args": ["/c", "npx", ...] |
| Сервер запускается, но падает | Неверный путь к папке или нет нужного API-ключа | Проверить пути и раздел env |
| Изменения не применились | Приложение не перечитало конфиг | Полностью перезапустить приложение |
| Сервер подключён, но модель им не пользуется | Слишком общий запрос | Сформулировать конкретнее или прямо указать сервер: «найди через сервер notes» |
| Модель путает инструменты | Подключено слишком много серверов | Отключить лишние |
| Удалённый сервер просит войти снова и снова | Истёк или отозван токен | Переподключить коннектор и пройти авторизацию заново |
Если причина неочевидна, смотрите логи. В Claude Desktop они лежат в папке логов приложения рядом с конфигурацией, в Claude Code помогает команда /mcp, в Cursor — вкладка Output с выбранным каналом MCP. А чтобы проверить сам сервер без ИИ-приложения, используйте MCP Inspector.
MCP для бизнеса: когда это окупается
Для компании MCP — способ превратить ИИ из чат-бота, который даёт общие советы, в помощника, который работает с реальными данными: CRM, задачами, документами, финансами. Но внедрять его «потому что модно» не стоит.
Когда MCP действительно нужен
- Данные разбросаны по нескольким системам. CRM, трекер задач, хранилище документов, таблицы. MCP даёт ИИ единую точку доступа ко всему этому.
- Есть повторяющаяся аналитика. Еженедельные отчёты, контроль KPI, поиск проблемных проектов, разбор воронки продаж.
- Сотрудники тратят время на сбор информации. Если менеджер час собирает статус из трёх систем, агент сделает это за минуту.
- Задачи требуют рассуждения, а не только автоматизации. Найти причину, сравнить варианты, подготовить персональное предложение с учётом истории клиента.
Когда можно обойтись без него
- Процесс всегда одинаковый и предсказуемый — обычная интеграция или n8n будут надёжнее и дешевле.
- Нужно подключить одну-две системы, и у них уже есть готовые коннекторы в используемом ИИ-сервисе.
- В компании нет порядка в данных. ИИ с доступом к хаосу выдаёт хаос быстрее.
Как внедрять
- Выберите одну задачу с измеримым результатом, например еженедельный отчёт по проектам, который сейчас занимает у руководителя два часа.
- Проверьте готовые серверы. У многих SaaS-сервисов уже есть официальные MCP-серверы, а писать свой стоит, только если их нет.
- Начните с режима чтения. Пусть агент сначала только смотрит данные и готовит выводы, а права на изменения добавляйте позже.
- Определите права доступа и ответственных. Кто может подключать серверы, к каким данным, кто отвечает за аудит.
- Запустите пилот на небольшой группе, соберите обратную связь и посчитайте сэкономленное время.
- Масштабируйте на другие отделы и задачи.
Как считать окупаемость
Простая формула: время, которое сотрудники тратили на задачу, умноженное на стоимость их часа, против расходов на ИИ-модель, разработку и поддержку серверов. Окупаемость наступает быстрее, если задача выполняется часто, ей пользуются многие сотрудники и она сложная — автоматизация аналитики даёт больше эффекта, чем автоматизация простых операций.
Для небольших компаний разумная альтернатива собственной разработке — облачные сервисы, в которые ИИ и MCP уже встроены, или готовые коннекторы в Claude и ChatGPT.
Куда движется MCP
За неполные два года MCP прошёл путь от эксперимента одной компании до отраслевого стандарта под управлением Linux Foundation. Вот тенденции, которые я вижу сейчас:
- Нейтральное управление. Протокол развивают вместе Anthropic, OpenAI, Google, Microsoft и сообщество, поэтому риск, что он «умрёт» или станет закрытым, минимален.
- Ставка на удалённые серверы. Сервисы выпускают официальные серверы, которые подключаются в один клик, а stateless-ядро новой ревизии упрощает их масштабирование.
- Интерфейсы внутри чата. MCP Apps позволяют инструментам показывать формы, таблицы и карточки, а не только текст.
- Корпоративный уровень. Шлюзы, централизованное управление доступом, аудит, более строгая авторизация.
- Выход за пределы IT. Финансы, медицина, производство, госсектор — везде, где ИИ нужен доступ к внутренним системам.
Вместо заключения
MCP — это не очередной хайп, а стандартный разъём, через который ИИ получает доступ к вашим данным и инструментам. Он не заменяет API и классическую автоматизацию, а даёт модели единый способ с ними работать. Главная ценность — ИИ перестаёт быть отдельным окном с чатом и становится интерфейсом для работы со всей цифровой средой.
Мой совет на старт: выберите одну задачу, которая регулярно отнимает у вас время, найдите под неё один сервер, подключите и поработайте неделю. Дальше вы сами поймёте, что добавить. И помните про безопасность: минимум прав, проверенные источники, подтверждение важных действий.
Короткий словарь терминов
| Термин | Значение |
|---|---|
| MCP | Model Context Protocol, открытый стандарт подключения ИИ к данным и инструментам |
| MCP-сервер | Программа, которая даёт ИИ доступ к конкретному сервису или источнику данных |
| Хост | Приложение, в котором вы работаете с ИИ: Claude, Cursor, VS Code, ChatGPT |
| Клиент | Компонент внутри хоста, который держит соединение с одним сервером |
| Инструмент (tool) | Функция, которую модель может вызвать сама |
| Ресурс (resource) | Данные, которые приложение подгружает как контекст |
| Промпт (prompt) | Готовый шаблон запроса под типовую задачу |
| stdio | Транспорт для локальных серверов через стандартный ввод-вывод |
| Streamable HTTP | Транспорт для удалённых серверов |
| JSON-RPC 2.0 | Формат сообщений, которыми обмениваются клиент и сервер |
| OAuth | Механизм авторизации без передачи пароля |
| Коннектор | Название подключённого MCP-сервера в интерфейсе Claude и ChatGPT |






