MCP-сервер: что это и зачем он нужен, если есть обычный чат
Короткий ответ: MCP-сервер - это переходник, через который нейросеть получает доступ к вашему инструменту: к таблице, к CRM, к календарю, к папке на диске. Готовый ставится за десять минут. Дальше расскажу, как я подключил шесть таких серверов и на чём обжёгся.
После подключения модель перестаёт работать по вашему пересказу и начинает работать с самой системой: смотрит, что там есть, меняет, создаёт новое. Разница примерно как между «опиши мне по телефону, что у тебя на экране» и «дай я сам посмотрю».
Свой сервер писать почти никогда не нужно, и за сами серверы не платят. Платите вы только за подписку на модель.
Я партнёр онлайн-проекта, закрываю аналитику, автоматизацию и лидген. У меня сейчас подключено около десятка таких серверов: официальные, чужие с GitHub и два написанных самому - к CRM школы, которую снаружи не поддерживает никто, и к своему трекеру задач. Так что это не обзор по документации.
Что такое MCP-сервер простыми словами
Сразу снимем главное недоразумение: MCP-сервер для ИИ - это не сервер в привычном смысле. Не машина в стойке и не хостинг. Это маленькая программа, которая чаще всего запускается прямо у вас на ноутбуке и живёт ровно столько, сколько открыт клиент.
А MCP - это договорённость о том, как нейросеть с такими программами разговаривает. Её открыл Anthropic в конце 2024 года, а в 2025-м поддержали и OpenAI, и Google. Поэтому сервер, написанный один раз, работает в разных приложениях, а не только в том, под которое его делали.
А проще всего думать про розетку. До MCP каждое приложение придумывало свой способ подружить модель с внешним миром, и под каждое надо было писать отдельно. Теперь форма вилки одна.
Слоёв тут три, и путаница обычно именно в них.
Клиент - приложение, в котором вы работаете: Claude, Cursor, редактор кода. Сервер - маленькая программа-переходник, своя на каждый инструмент. Инструмент - собственно таблица или CRM, со своим обычным API.
Но никакой магии и никакого ИИ внутри сервера нет. Это тонкая прослойка, которая объясняет модели: вот такие действия тут возможны, вот такие у них параметры, вот в каком виде вернётся ответ.
Чем это отличается от того, чтобы вставить данные в чат
Копипастой в чат работают почти все, и я работал. Скриншот таблицы, сверху объяснение: в столбце А даты, в столбце Б расход, посчитай окупаемость.
У этого три беды, и все три не лечатся.
Модель видит не систему, а картинку. Она не знает, что на соседнем листе двести тысяч строк, что три колонки скрыты и что на третьем листе формулы, которые сломаются от вставки.
Она ничего не помнит про ваши правила. В русской локали Google Таблиц аргументы формулы разделяются точкой с запятой. Я объяснял это, модель соглашалась, а в следующем окне снова писала через запятую. Потому что в новом окне про мою локаль она не знает ничего.
Результат надо нести обратно руками. Выгрузил, загрузил, поработал, перенёс. Команда что-то поменяла в таблице - по новой. Вы занимаетесь не аналитикой, а перекладыванием файлов.
Вот то же самое в двух столбцах, по пунктам.
| Что | Копипаста в чат | Прямой доступ |
|---|---|---|
| Видит структуру | только то, что на картинке | все листы, формулы, скрытое |
| Помнит ваши правила | до конца окна | всегда, правила лежат файлом |
| Может записать результат | нет, переносите сами | да, пишет сама |
| Шагов на одну задачу | пять-шесть | один |
| Работает по расписанию | нет | да, если сервер умеет скрипты |
Модель не стала умнее. Она перестала работать по пересказу.
Что модель получает на самом деле: не текст, а список умений
Это главное место, которое стоит понять, дальше всё становится очевидным.
Когда вы подключаете сервер, модель не получает вашу таблицу текстом. Она получает список доступных действий с описаниями: «найти ученика по имени», «получить платежи за период», «создать лист». У каждого действия указано, какие параметры он принимает.
И дальше модель сама решает, какие действия и в каком порядке вызвать. Вы говорите «сколько детей пришло к этому преподавателю в сентябре» - она сама находит преподавателя, сама подтягивает его занятия, сама считает посещаемость и сама отвечает числом. Вы в середине не участвуете.
Вот как это выглядит на моём сервере к трекеру задач. Двадцать пять умений, у каждого говорящее имя, и напротив каждого - переключатель: разрешать всегда, спрашивать каждый раз или запретить совсем. То есть набор доступен не весь скопом, вы решаете поштучно. К этому ещё вернусь в главе про безопасность.
Отсюда же следует неочевидное: чем точнее описаны инструменты, тем лучше работает модель. Половина качества сервера - в текстах описаний, а не в коде. Мой сервер к CRM я переписывал дважды именно из-за этого: код работал с первого раза, а модель выбирала не те методы, потому что из описаний было не понятно, чем они отличаются.
Пример: разбор звонков, который собрался сам
Чтобы было понятно, ради чего вообще эта возня с доступами, вот одна рабочая задача целиком.
Записи звонков лежат в CRM. Модель забирает их оттуда, отдаёт на расшифровку, прогоняет расшифровки через агентов, которые ищут нужные ситуации, и складывает найденное в отдельную таблицу со ссылками на сделки. Дальше из этой таблицы данные берут люди и следующие скрипты. Ни одной строки туда руками никто не вносит.
Собрано это из трёх серверов подряд: один умеет CRM, второй расшифровку, третий таблицы. Каждый по отдельности - скучный переходник на десяток методов. Вместе - процесс, который руками никто бы и не делал: слушать сотни звонков просто некому.
Вот это и есть ответ на вопрос «зачем, если есть обычный чат». В чат такое не помещается.
Как подключить MCP-сервер
На примере готового сервера к Google Таблицам, потому что это самый частый первый шаг.
- Выбрать готовый сервер.Для таблиц это
mcp-gsheets, ставится черезnpx, писать ничего не надо. - Прописать его в конфиг клиента.У Claude на макбуке это файл
claude_desktop_config.json, в нём блокmcpServersи внутри имя, команда и аргументы. В Claude Code то же самое делается командойclaude mcp add. - Выдать доступ к самому инструменту.Для Google это служебный аккаунт: проект в облаке, включённые API, файл с ключом.
- Перезапустить клиент.Пока не перезапустите, сервера он не увидит, и это сбивает с толку в первый раз.
- Проверить, что сервер виден.В клиенте должен появиться список инструментов. Если списка нет, дело почти всегда в пути к файлу или в опечатке в конфиге.
По времени честно: если разбираться самому - час, и большая часть уйдёт не на MCP, а на облако Google. Если повторять за тем, кто уже прошёл - пятнадцать минут.
Серверы живут в двух разных местах, и это сбивает
Отдельная путаница, на которую натыкаются все. Подключить сервер можно в двух местах, и они друг про друга не знают.
Коннекторы в приложении. Список в настройках, подключаются кнопкой или адресом. Работают в приложении и в браузере, в том числе с телефона.
Конфиг у редактора кода. Отдельный файл, свой список. Причём в Claude Code
список ещё и двухэтажный: глобальные серверы видны везде, а файл .mcp.json
рядом с проектом добавляет серверы только в этом проекте. У меня так лежит
сервер к CRM: в папке проекта, а не в общем списке, чтобы не висел там, где он
не нужен.
Поэтому «я же подключил, почему не видно» почти всегда означает, что подключали в одном месте, а смотрите в другом.
Начинайте с одного сервера, а не с пяти. Каждый подключённый сервер добавляет модели список инструментов, и этот список занимает место в её внимании. С шестью серверами и сотней инструментов она начинает выбирать не то. Я держу включёнными только те, что нужны под текущую задачу.
Локальный MCP-сервер и удалённый: в чём разница
Запросов про «локальный mcp сервер» хватает, и путаница тут реальная. Разница простая: где физически запускается программа-переходник.
Локальный живёт у вас на компьютере. Клиент запускает его как обычную программу и разговаривает с ним напрямую. Ключи от ваших систем лежат у вас, в сеть ничего лишнего не уходит, и сервер может читать файлы на вашем диске. Так работают почти все готовые серверы. Минус один, но существенный: пока ноутбук закрыт, сервера нет.
Удалённый живёт на сервере в интернете, и клиент обращается к нему по адресу.
Я так сделал коннектор к своему трекеру задач: он лежит облачной функцией, адрес
вида .../functions/v1/mcp/<токен>, и благодаря этому разбор дел работает с
телефона, а не только за рабочим столом. Двадцать четыре инструмента, никакого
ноутбука в схеме.
Было
Сервер к CRM запускался на моём макбуке. Чтобы задать вопрос по школе, надо было сесть за ноутбук.
Стало
Трекер отвечает с телефона из приложения, потому что его сервер живёт в облаке и ему всё равно, где я.
А цена удалённого - безопасность. Токен в адресе это и есть весь ваш пропуск: кто его получил, тот и зашёл. Поэтому такой адрес не кладут в переписку, не показывают на скриншотах и не хранят в заметках без пароля.
Если токен попал куда-то не туда, менять его надо сразу, а не «потом». С локальным сервером хотя бы нужен доступ к вашему компьютеру. С удалённым достаточно строки.
Где брать готовые серверы
Три места, по убыванию надёжности.
Официальный набор. У протокола есть сайт modelcontextprotocol.io и
репозиторий с серверами-образцами: файлы, поиск, память, популярные сервисы. Это
эталон, по нему же удобно смотреть, как сервер устроен внутри.
Каталог внутри клиента. В современных клиентах часть серверов подключается кнопкой, без правки конфигов вообще. Если нужная система там есть, это самый короткий путь.
GitHub. Дальше начинается территория чужих проектов. Для Apps Script я взял сервер на шестнадцать инструментов, с OAuth и автообновлением токена, под лицензией MIT. Работает до сих пор.
Здесь стояла прямая ссылка на тот репозиторий. Через неделю после выхода статьи я её проверил - и получил 404: автор убрал проект. Профиль на месте, репозитория нет. Это и есть главный риск чужих проектов, и он важнее качества кода. Поэтому копию того, что у вас работает, держите у себя: форк на своём аккаунте или хотя бы архив папки. В тот день, когда проект исчезнет, вы об этом узнаете не сразу, а при следующей переустановке.
Сервер из интернета получает ваши ключи и ваши права. Перед установкой стоит хотя бы открыть код и посмотреть, куда он ходит по сети. Это не паранойя: переходник к CRM технически может отправить содержимое вашей базы куда угодно, и вы этого не увидите.
Грабли, которые стоили мне больше всего времени
Все пять - из своей практики, и каждая выглядит как «всё настроено правильно, а не работает».
Служебному аккаунту не выдан доступ к таблице. Самая частая. У служебного аккаунта есть собственный адрес почты, и таблицей с ним надо поделиться, как с живым человеком. Пока не поделились, модель уверенно сообщает, что таблицы не существует. Хотя она вот, открыта в соседней вкладке.
Токен умирает через неделю. Пока приложение в облаке Google стоит в тестовом режиме, доступ выдаётся на семь дней. Ровно через неделю всё перестаёт работать, причём без внятного объяснения. Лечится переводом приложения в опубликованный режим, и вот тут вас ждёт цепочка: кнопка серая, потому что не заполнен раздел с описанием, а он не заполняется, потому что нужны адрес сайта и политика конфиденциальности. То есть для доступа к своей же таблице вам нужен сайт.
Это та грабля, из-за которой у человека всё ломается через неделю после успешной настройки, и он решает, что технология сырая. Технология тут не виновата.
Сервер сносит то, что было. Касается серверов, которые умеют писать код. Просишь добавить скрипт - он очищает проект и заливает только свой. А потом сообщает: кажется, я удалил то, что там было. У меня это случилось на боевой таблице. А лечится это предупреждением заранее: тут есть код, его не трогать, добавляй рядом. Плюс копия перед крупными изменениями.
«Приложений нет», хотя оно есть. У меня в облаке оказалось три проекта с одинаковым именем, и настраивал я не тот, в котором искал. Номер проекта виден в идентификаторе клиента, по нему и нашёлся.
Клиент не видит сервер. В девяти случаях из десяти это путь к файлу: пробел в имени папки, не тот слэш, относительный путь вместо полного.
Безопасность: что вы отдаёте вместе с доступом
Короткая глава, но без неё нечестно.
Сервер работает с вашими правами. Если ключ даёт право удалять, модель технически может удалить.
Первая линия обороны - те самые переключатели у каждого инструмента. Всё, что только читает, я ставлю на «разрешать всегда», чтобы не подтверждать по сто раз в день. Всё, что пишет, удаляет или отправляет наружу, - на «спрашивать». Это тридцать секунд настройки один раз.
Дальше три правила, которые я вывел уже на своих ошибках.
Только чтение, где это возможно. Мой сервер к CRM школы умеет исключительно читать. Записывать туда нечего, а риск отрезан на уровне кода, а не уговоров.
Отдельный аккаунт с минимальными правами. Не ваш личный, у которого есть всё. Служебный, у которого есть ровно одна таблица.
Границы проговаривать словами. «Работаем с этими листами, остальные не трогаем». Без этого модель считает, что в её распоряжении всё, до чего достаёт ключ. И формально она права.
Когда всё-таки нужен свой сервер
Готовые есть для популярных систем: таблицы, почта, календарь, мессенджеры, базы данных. Свой нужен, когда вашей системы нет ни в одном каталоге.
У нас так вышло с CRM школы. Это HollyHop, снаружи её не поддерживает никто, поэтому сервер я написал сам. Пятнадцать инструментов, только чтение, ограничитель под лимит в шестьсот запросов за тридцать секунд с запасом до пятисот пятидесяти, автоматическая пагинация и отдельный составной метод, который собирает всё про одного ученика сразу: занятия, посещаемость, платежи, баланс.
И последнее - не украшение. Без него модель на вопрос про одного ребёнка делала семь вызовов подряд и путалась на третьем. С одним составным методом отвечает сразу.
Сколько это стоило: три вечера на первую рабочую версию и примерно столько же потом на описания инструментов, чтобы модель перестала выбирать не те методы. Для системы, к которой обращаются каждый день, окупилось за неделю.
Но начинать с этого не надо. Начинать надо с готового сервера и своей таблицы.
Кому MCP не нужен
Тому, у кого нет своих данных. Если вы пишете тексты и больше ничего, вам нечего подключать. Обычного чата достаточно, и это нормально.
Тому, кто не понимает свои данные. Это не волшебная таблетка, а усилитель. Если вы не можете посмотреть на посчитанную конверсию и сказать «здесь что-то не так», вы получите источник красивых неправильных отчётов.
Тому, кому нужно один раз. Настройка доступов занимает час. Если задача разовая, быстрее сделать руками.
Порог входа тут честно инженерный. Всё настраивается глубоко и неочевидно, и первая настройка - это скорее несколько больших проблем, чем приятный вечер. Зато она одна.
Живой пример
Если хотите посмотреть, как это выглядит на конкретной задаче, у меня есть разбор: нейросеть, которая работает с вашими Google Таблицами. Там те же серверы, но целиком про таблицы: какие ставить, как устроены боевые дашборды и почему главный приём - не промпт, а документация, положенная рядом.
MCP по шагам: от готового сервера до своего
Набор коротких уроков про MCP: ставим официальные серверы, разбираемся с чужими с GitHub и пишем свой под систему, которой нет ни в одном каталоге.
Уроки выходят по одному, начиная с октября. Доступ к набору один раз, новые части приходят на ту же почту. Если передумаете, отпишетесь одной кнопкой.
Пишу про свои автоматизации в телеграм-канале: короткие заметки по ходу работы, без расписания и без рекламы.
Читать каналЕсли нужна не инструкция, а готовое решение под ваш бизнес — напишите мне, обсудим задачу.