Инструменты

MCP сервер что это: устройство и границы доступа

Для кого

Тому, кто хочет подключить ИИ‑агента к своим данным или действиям

Что вы получите

Поймёте устройство MCP и проверите первый доступ

Время чтения

6 мин

Точка А: сейчас

Агенту нужны данные проекта, но копировать таблицы и ключи в чат неудобно и опасно

Точка Б

Подключённый сервер выдаёт только разрешённые сведения и действия

Понятное объяснение MCP‑сервера: инструменты, ресурсы, разрешения и проверка подключения на одной задаче.

MCP‑сервер представляет ИИ‑приложению набор возможностей по протоколу Model Context Protocol. Это могут быть инструменты для действия, ресурсы для чтения или готовые шаблоны запросов. Сам сервер не принимает бизнес-решение за человека: он описывает, что можно запросить, выполняет разрешённый вызов и возвращает результат. Агент выбирает, когда обратиться к этим возможностям, а приложение и ваши настройки определяют границы доступа. Разбор основан на официальном описании архитектуры MCP, проверенном 25 октября 2026 года.

В примере из истории выше агент запрашивает задачи и статусы через узкое подключение. Данные остаются в трекере; по идентификатору записи можно проверить ответ. Простой пример: у вас есть таблица актуальных услуг клиники. Вместо вставки всей таблицы в каждый чат можно дать инструмент find_service, который по названию возвращает действующую цену и дату обновления. Ответ агенту ограничен одним запросом. Это не делает его автоматически безопасным: неправильно настроенный сервер может выдать все данные или разрешить изменение вместо чтения.

Кто участвует в вызове

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

УчастникЕго рольГде ставить контроль
ПользовательФормулирует задачуПодтверждает важное действие
ИИ‑приложениеРешает, какой вызов предложитьПоказывает разрешения и результат
MCP‑клиентОбщается с сервером по протоколуОграничивает подключение
MCP‑серверВыполняет конкретный запросПроверяет права, вход и объём ответа
Источник данныхХранит исходную записьОстаётся единственным источником правды

Для чтения справочника достаточно узкого инструмента. Для выставления счёта или отправки клиенту сообщения нужен отдельный шаг подтверждения. Разделяйте права чтения и записи, даже если технически проще отдать агенту общий ключ к системе.

Проверяйте каждую возможность отдельно:

  • Назовите данные, которые ресурс отдаёт модели.
  • Запишите входные поля инструмента и допустимый ответ.
  • Проверьте отказ для чужой записи.
  • Потребуйте подтверждение перед изменением данных.

Чем инструмент отличается от ресурса

Ресурс удобен, когда приложению нужен документ или запись для чтения. Инструмент описывает операцию с входными параметрами: найти услугу, получить свободное время, создать черновик заявки. Разница важна при проверке доступа. Документ может содержать лишние персональные сведения; операция может совершить действие, которое нужно отменять. Шаблон запроса помогает заранее задать форму задачи, но не заменяет контроль на сервере.

Представьте запрос «Запиши клиента завтра». Агенту нужны доступные часы и затем подтверждение записи. Сначала он читает расписание, показывает выбор человеку, после подтверждения вызывает отдельное действие создания записи. Если в одном инструменте скрыты поиск, выбор и запись, труднее выяснить, на каком шаге возникла ошибка или двойное бронирование.

Как проверить первое подключение к MCP

Начните с безопасной тестовой базы без клиентов. Подключите сервер по инструкции своего ИИ‑приложения и убедитесь, что агент видит только ожидаемые возможности. Попросите прочитать одну тестовую запись, затем обратиться к несуществующей. Следом попробуйте действие, на которое прав нет: правильный отказ ценнее красивого успешного ответа. Запишите, какие данные ушли в модель и остались в журнале. Подробности подключения зависят от клиента. Для Claude Code в официальной инструкции MCP Python SDK показана команда регистрации локального сервера:

claude mcp add tracker -- uv run --with "mcp[cli]" mcp run /absolute/path/to/server.py

Путь замените на файл своего сервера; команда имеет смысл только после его создания. В сессии Claude Code проверьте подключение через /mcp, затем запросите одну тестовую задачу.

ТестОжидаемое поведениеПризнак ошибки
Поиск существующей услугиОдна актуальная записьСтарый прайс или список целиком
Поиск неизвестной услугиЯсный ответ «не найдено»Придуманная цена
Запись без подтвержденияДействие отклоненоСоздана реальная заявка
Запрос чужой записиДоступ запрещёнДанные попали в ответ
Пользователь

Покажи мою задачу на сегодня.

Агент

Нашёл запись в трекере и покажу её дату и статус.

Образец проверки чтения через MCP, а не реальный диалог.

Здесь важно сверить идентификатор записи. Если агент показал старый текст из памяти, подключение ещё не решило задачу.

Когда сервер пока не нужен

Если вы решаете одну задачу на небольшом открытом тексте, достаточно дать агенту файл проекта или подготовленный документ. MCP добавляет установку, настройку прав, обновления и диагностику. Он оправдан, когда данные меняются, доступ нужен регулярно или агент должен вызывать действие, результат которого можно проверить. Начните с одного инструмента чтения; общий доступ ко всей CRM избыточен.

После подключения следите за ошибками связи и повторными вызовами. Если приложение отправило один запрос дважды, операция записи не должна создавать два заказа. Для любых действий, которые тратят деньги или отправляют сообщения клиентам, вводите ограничение и явное подтверждение. Администратор должен уметь отключить сервер без потери исходных данных.

Проверьте отказ отдельно:

  • Запросите несуществующую запись.
  • Запросите запись другого пользователя.
  • Повторите один вызов после ошибки связи.
  • Убедитесь, что исходная база сохранилась.

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

Где происходит доверие к ответу сервера

Предположим, инструмент вернул цену услуги и дату обновления. Агент может верно прочитать число, но в итоговом ответе добавить неподтверждённый срок акции. Поэтому при проверке сохраняйте отдельно запрос к серверу, его результат и текст для человека. Если ошибка возникла в базе, исправляйте базу; если инструмент вернул лишние поля, сужайте выдачу; если модель добавила обещание, меняйте сценарий ответа и ставьте проверку перед отправкой.

Для действий полезен уникальный номер запроса. Если соединение оборвалось после создания записи, повторный вызов с тем же номером должен вернуть прежний результат. Создание дубля будет ошибкой. Это особенно важно для заявок, бронирований и платежей. Одно тестовое отключение связи может выявить проблему раньше, чем она затронет клиента.

Покажите журнал такого теста человеку, который отвечает за исходную систему. Он должен подтвердить, что в базе появилась ровно одна запись и что её можно найти обычным рабочим способом.

Частые вопросы

MCP‑сервер обязательно находится в интернете?

Нет. По официальной архитектуре соединение может быть локальным или удалённым. В любом случае права к данным нужно задавать явно.

Достаточно ли скрыть ключ в .env?

Нет. Хранение ключа защищает от случайной публикации, но сервер всё равно должен проверять, какие действия разрешены конкретному подключению.

Может ли MCP сам придумать ответ?

Сервер возвращает данные или результат операции. Текст ответа формирует ИИ‑приложение, поэтому проверяйте и исходный результат вызова, и окончательную реплику.

С чего начать разработку своего сервера?

Опишите одну задачу, входные параметры, права и тест отказа. Потом выберите официальный SDK для вашего языка и добавляйте возможности по одной.

Если нужен практический следующий шаг, посмотрите общую статью о базе знаний агента: она помогает понять, какие сведения вообще стоит открывать помощнику.