Свой MCP-сервер: как дать Claude доступ к вашим данным
Свой MCP-сервер — это компактный сервис, который выставляет ваши внутренние данные и инструменты наружу по протоколу MCP, чтобы Claude дотягивался до них напрямую и под вашими правилами доступа. Вы описываете несколько инструментов, оборачиваете их в HTTP-сервер, выставляете на домене — и модель начинает читать вашу базу, заводить записи в CRM, собирать отчёты. Контроль над тем, что модель видит и меняет, остаётся за вами. Ниже разбираю весь путь: зачем это фаундеру, из чего состоит сервер, как собрать минимальный и где провести границы.
Что такое свой MCP-сервер и зачем он бизнесу
Готовые коннекторы закрывают типовые сервисы — почту, гитхаб, диск. Свой сервер нужен там, где данные живут в вашей внутренней системе: российская CRM, складская база, таблица расчётов, внутренний справочник цен. Готового коннектора под такое в каталоге нет, поэтому путь один — поднять собственный. Это и называется «MCP-сервер своими руками».
Для фаундера выгода прямая. Сотрудник, который весь день перекладывает данные между внутренней базой и таблицами, освобождается, как только Claude получает доступ к этой базе через ваш сервер. В работе с командами я вижу одну и ту же картину: человек тратит половину дня на сборку отчёта руками, хотя модель собрала бы его за минуту, будь у неё доступ к источнику. Свой сервер этот доступ и даёт, причём строго по границам, которые вы прописали.
Из чего состоит MCP-сервер: инструменты и ресурсы
MCP — открытый протокол, и сервер по нему выставляет наружу две основные сущности — инструменты и ресурсы. Инструменты — это действия, которые модель выполняет по запросу. «Найти клиента по телефону», «создать задачу», «посчитать сумму заказов за месяц» — каждый инструмент описан именем, текстовым описанием и схемой входных параметров. Ресурсы — это данные, которые модель читает как контекст: содержимое документа, строка из справочника, выгрузка отчёта.
Описание инструмента модель использует, чтобы понять, когда его звать. Вы пишете человеческим языком: «возвращает сделку по её номеру, поля — сумма, статус, ответственный менеджер». Claude читает это описание и сам сопоставляет с просьбой пользователя. Чем точнее описание, тем реже модель промахивается с выбором инструмента.
| Часть сервера | Что делает | Пример |
|---|---|---|
| Инструмент | Выполняет действие по запросу модели | «создать лид в CRM», «отправить черновик письма» |
| Ресурс | Отдаёт данные модели для чтения | содержимое документа, строка справочника, выгрузка отчёта |
| Схема параметров | Описывает, что принимает инструмент | номер сделки, диапазон дат, идентификатор клиента |
| Описание | Подсказывает модели, когда звать инструмент | «возвращает сделку по номеру: сумма, статус, менеджер» |
| Транспорт | Канал связи между сервером и Claude | локальный (stdio) или удалённый (Streamable HTTP) |
Транспорт определяет, где живёт сервер. Локальный сервер запускается на вашей машине и общается с приложением Claude через стандартный ввод-вывод — это удобно для личных инструментов и разработки. Удалённый сервер стоит на домене за HTTPS, говорит по Streamable HTTP с авторизацией и доступен всей команде по сети. Личный инструмент держите локально, общий для команды — выставляйте удалённым.
- Локальный сервер (stdio) — процесс на вашей машине, конфигурируется в приложении Claude. Подходит для личного инструмента и отладки.
- Удалённый сервер (Streamable HTTP) — сервис на домене с авторизацией, доступен команде по сети. Подходит, когда коннектором пользуются все.
- SDK — готовый набор от Anthropic для Python и TypeScript, который снимает с вас низкоуровневую часть протокола и оставляет только описание инструментов.
Как собрать минимальный сервер: пошаговый разбор
Минимальный сервер собирается из официального SDK и укладывается в один файл. Логика простая: вы заводите сервер, регистрируете на нём пару инструментов, запускаете процесс. Ниже — путь от пустой папки до рабочего коннектора, который Claude видит и зовёт.
- Поставьте SDK. Для Python это пакет официального MCP-набора, для TypeScript — его npm-аналог. SDK берёт на себя протокол, вам остаётся бизнес-логика.
- Заведите объект сервера и дайте ему имя — по нему Claude отличит ваш коннектор от других в списке.
- Опишите первый инструмент: имя, текстовое описание для модели и схему входных параметров. Внутри функции положите обращение к вашему источнику — API CRM, запрос к базе, чтение файла.
- Добавьте инструмент-ресурс на чтение, например «вернуть карточку клиента по идентификатору». Пометьте его как read-only, чтобы модель понимала: он только читает.
- Выберите транспорт. Для личной отладки запускайте через stdio и подключайте в приложении Claude как локальный сервер. Для команды оберните сервер в Streamable HTTP и выставьте на домене по пути /mcp за HTTPS.
- Запустите процесс и подключите сервер в настройках коннекторов Claude. Дождитесь, пока модель подтянет список инструментов с описаниями.
- Проверьте связь прямой просьбой: «достань сделку номер 412» или «покажи карточку клиента Иванова». Claude вызовет ваш инструмент и вернёт результат из боевого источника.
Где человек контролирует доступ модели
Свой сервер даёт Claude доступ к боевым данным, поэтому границы вы задаёте на уровне самого сервера. Аккуратность модели тут вторична — решает то, что вы ей разрешили. Главный приём — разделить инструменты на читающие и изменяющие. Читающие помечаются как read-only: модель понимает, что вызов только смотрит данные и оставляет их как есть. Изменяющие проводите через явное подтверждение человека в интерфейсе.
- Read-only по умолчанию. Все читающие инструменты помечаются как безопасные. Изменяющие требуют согласия, и Claude учитывает эти метки при выборе действия.
- Подтверждение на запись. Любой инструмент, который меняет данные или отправляет их наружу, проводите через явное согласие пользователя — это человек в контуре.
- Минимум прав у авторизации. Выдавайте серверу ровно те разрешения внутренней системы, что нужны под задачу. Доступ ко всей базе там, где хватает одной таблицы, лишний.
- Недоверенный ввод. Данные из писем и документов несут вредные инструкции, поэтому относитесь к ним как к недоверенному вводу — это риск подмены промпта.
- Хостинг под контролем. Удалённый сервер держите на своём VPS за HTTPS, секреты — в переменных окружения, отдельно от кода.
Эти решения принимаются на уровне архитектуры сервера, и здесь окупается участие инженера. В одном случае хватает читающего сервера с минимальными правами, в другом нужен сервер с аккуратно размеченными инструментами и подтверждением на каждую запись. Разница между этими сценариями определяет, утечёт у вас что-нибудь или останется под контролем.
С чего начать и куда двигаться дальше
В работе с командами я часто вижу, как фаундер откладывает свой сервер, потому что готовые коннекторы выглядят проще. Готовые и правда проще, и с них разумно начинать. При этом самая дорогая рутина сидит во внутренней системе, для которой готового коннектора попросту нет, и закрывает её только собственный сервер. Один инструмент под главный ежедневный запрос команды снимает с человека целый кусок ручной работы сразу.
Дальше сервер растёт по запросу: каждый новый инструмент добавляет модели ещё один кусок вашей системы. Сервер, который Claude вызывает как клиент, легко переедет и к другому клиенту — Claude Code, редактору кода, стороннему приложению, ведь протокол открытый и переписывать сервер под каждый клиент нужды нет. Тот же сервер становится фундаментом для ИИ-агента, который сам ходит по вашим инструментам и доводит задачу до конца.
На программах Зинин·Штурбин мы собираем MCP-сервер на ваших реальных данных: какой инструмент описать первым, где провести границы доступа, как подключить сервер команде безопасно. Начните с discovery-созвона — расскажите, как устроена ваша внутренняя работа, и я покажу, какой сервер собирается первым и что он закрывает уже на старте.
Частые вопросы
Нужно ли уметь программировать, чтобы собрать свой MCP-сервер?
Чем свой сервер отличается от готового коннектора?
Где должен жить MCP-сервер — на моей машине или на сервере?
Безопасно ли давать Claude доступ к боевой базе через свой сервер?
Что описать инструментом первым делом?
Подойдёт ли один сервер для разных клиентов кроме Claude?
Разберём вашу ситуацию на Discovery-созвоне
Один час на Discovery-созвоне — и вы увидите, какие задачи в вашем случае отдать ИИ, какие оставить команде.
Прийти на Discovery-созвон →