
Claude Desktop умеет работать не только с текстом в окне диалога. Через Model Context Protocol (MCP) приложение может обращаться к локальным файлам, базам данных и другим внешним источникам, если пользователь подключил соответствующий сервер.
Это полезно для работы с проектами, документацией и локальными наборами данных, но MCP не является «безопасным доступом к компьютеру по умолчанию». Каждый сервер запускается как отдельный процесс и получает права, заданные его конфигурацией и окружением. Поэтому правильная настройка начинается не с установки первого найденного пакета, а с ответа на три вопроса:
- какие данные должен видеть сервер;
- какие действия ему разрешены;
- как проверить его исходный код и сетевое поведение.
Ниже — узкий практический сценарий: подключить локальный сервер файловой системы к Claude Desktop, проверить его работу и подготовить безопасную основу для других интеграций.
Как устроен MCP
MCP — открытый протокол, описывающий обмен между приложением-клиентом и сервером, который предоставляет модели внешние возможности. В этой связке Claude Desktop выступает клиентом, а локальная программа MCP-сервера запускается отдельно.
Сервер может публиковать несколько типов возможностей:
- tools — вызываемые действия, например чтение файла или выполнение запроса;
- resources — доступные данные и документы;
- prompts — заранее описанные шаблоны взаимодействия.
Для локальных серверов Claude Desktop обычно запускает процесс через stdio: приложение передаёт ему сообщения через стандартные потоки ввода и вывода. В конфигурации указываются команда запуска и аргументы. Это отличается от подключения к произвольному веб-сервису: локальный процесс всё равно выполняется с правами текущего пользователя, поэтому ограничения нужно задавать явно.
MCP не предоставляет универсальную песочницу. Если серверу разрешён доступ к каталогу, он может читать или изменять данные в пределах возможностей самого сервера. Если процесс запущен с правами пользователя, ошибки конфигурации могут затронуть личные файлы.
Что установить заранее
Для первого подключения достаточно подготовить четыре компонента:
Claude Desktop с поддержкой MCP.
Node.js и npm — если выбранный сервер распространяется как пакет JavaScript или TypeScript.
3. Python или другой рантайм — только если это требуется конкретному серверу.
4. Редактор JSON-файлов.
Перед установкой проверьте документацию именно выбранного сервера. У MCP нет единого обязательного языка реализации и единого менеджера пакетов: один сервер запускается через `npx`, другой — через `uvx`, третий требует предварительной сборки из исходников.
Для проверки окружения можно выполнить:
bash
node —version
npm —version
python3 —version
Не устанавливайте сервер только по названию пакета из случайной статьи. Сверьте репозиторий, владельца, инструкцию запуска и список разрешений. Официальный каталог примеров и серверов доступен в репозитории Model Context Protocol, но наличие проекта в публичном репозитории само по себе не заменяет аудит кода.
Где лежит конфигурация
Claude Desktop читает конфигурацию MCP из файла `claude_desktop_config.json`. Типовые пути зависят от операционной системы.
| Операционная система | Путь к конфигурации | Что проверить |
|---|---|---|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` | Папка `Claude` может потребовать ручного создания |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` | Используйте переменную `%APPDATA%`, а не путь другого пользователя |
| macOS и Windows | Путь из актуальной документации Claude Desktop | Интерфейс и расположение файла могут меняться после обновления |
Если файла ещё нет, создайте его с корректным JSON. Нельзя добавлять комментарии, лишние запятые или несколько корневых объектов. Минимальная структура выглядит так:
json
{
«mcpServers»: {}
}
После изменения конфигурации полностью перезапустите Claude Desktop. Простого закрытия окна может быть недостаточно: завершите приложение через меню операционной системы и запустите его снова.
Первый сервер: доступ к папке
Для теста лучше выбрать одну рабочую директорию, где нет паролей, SSH-ключей, резервных копий и личной переписки. Например:
bash
mkdir -p ~/mcp-sandbox
printf «Тестовый файл для Claude Desktop\n» > ~/mcp-sandbox/readme.txt
Затем добавьте сервер файловой системы. Название npm-пакета и параметры нужно сверять с актуальной документацией проекта; для примера ниже используется пакет из экосистемы Model Context Protocol:
json
{
«mcpServers»: {
«filesystem»: {
«command»: «npx»,
«args»: [
«-y»,
«@modelcontextprotocol/server-filesystem»,
«/Users/username/mcp-sandbox»
]
}
}
}
Замените `/Users/username/mcp-sandbox` на реальный путь. В Windows путь можно указать в формате, который поддерживает конкретный рантайм, например:
json
{
«mcpServers»: {
«filesystem»: {
«command»: «npx»,
«args»: [
«-y»,
«@modelcontextprotocol/server-filesystem»,
«C:\\Users\\username\\mcp-sandbox»
]
}
}
}
Не добавляйте в список весь домашний каталог ради удобства. Разрешённые пути — главный рубеж между рабочими файлами и остальными данными пользователя.
После перезапуска откройте новый диалог и попросите Claude перечислить файлы только в тестовой папке. Затем отдельно проверьте чтение `readme.txt`. На этом этапе не просите модель удалять или перезаписывать данные.
Как проверить разрешения
Проверка должна быть пошаговой, а не сводиться к появлению значка MCP в интерфейсе.
Убедитесь, что сервер отображается как подключённый.
Попросите перечислить содержимое разрешённой папки.
3. Попросите прочитать тестовый файл.
4. Проверьте, что путь за пределами разрешённой директории недоступен.
5. Если сервер поддерживает запись, создайте безобидный временный файл.
6. Удалите тестовый файл вручную и просмотрите логи процесса.
Полезно проверить отказ в доступе к соседней папке:
text
Перечисли файлы в ~/Documents. Если путь недоступен, объясни причину и ничего не создавай.
Такой тест не доказывает абсолютную безопасность сервера, но показывает, совпадает ли фактическая область доступа с вашей конфигурацией. Для критичных данных этого недостаточно: нужна изоляция процесса и отдельная учётная запись операционной системы.
Базы данных: сначала чтение
MCP-сервер для базы данных может быть удобнее ручного копирования SQL-результатов, но риск ошибки здесь выше. Модель способна сформировать изменяющий запрос, а сервер — выполнить его, если у учётной записи есть соответствующие права.
Безопасная последовательность выглядит так:
- создайте отдельную учётную запись только для чтения;
- подключайте копию или реплику, если это возможно;
- не храните пароль непосредственно в общем конфигурационном файле;
- ограничьте сетевой доступ к базе;
- сначала разрешите только просмотр схемы и выборку данных;
- включите журналирование запросов.
Пример конфигурации должен соответствовать конкретному серверу базы данных. Не все проекты используют одинаковые имена пакетов и аргументы, поэтому универсальная строка вроде `@anthropic/server-postgres` не должна копироваться без проверки: её наличие и актуальность нужно подтверждать в официальном репозитории выбранной реализации.
Для SQLite достаточно особенно внимательно ограничить путь к файлу:
json
{
«mcpServers»: {
«sqlite»: {
«command»: «uvx»,
«args»: [
«НАЗВАНИЕ_ПРОВЕРЕННОГО_СЕРВЕРА»,
«—db-path»,
«/Users/username/mcp-sandbox/analytics-copy.db»
]
}
}
}
Замените заглушку на реальное имя пакета из документации. Перед запуском сделайте резервную копию базы и убедитесь, что путь не указывает на рабочий файл.
Выполнение команд — отдельный риск
Инструмент, который запускает shell-команды или произвольный код, нельзя считать обычным расширением Claude Desktop. Он потенциально получает доступ к файловой системе, переменным окружения, сетевым ресурсам и установленным программам.
Для большинства задач такой сервер не нужен. Анализ логов можно выполнить через сервер файловой системы, а вычисления — в заранее подготовленном скрипте или изолированном окружении. Если запуск кода всё же необходим:
- используйте отдельный контейнер или виртуальную машину;
- отключите сеть, если она не нужна;
- монтируйте только рабочую папку;
- задайте лимит времени и памяти;
- запретите оболочки `bash` и `sh`, если сервер позволяет белый список команд;
- не передавайте процессу секреты из переменных окружения;
- проверяйте результат каждой операции до следующего вызова.
Не полагайтесь только на аргумент вроде `—allowed-commands`. Если разрешена оболочка, ограничение отдельных команд может быть обойдено через параметры оболочки или дочерние процессы. Безопасность должна обеспечиваться несколькими слоями, а не одной настройкой.
Как проверять сторонний сервер
Перед подключением стороннего проекта откройте его репозиторий и ответьте на следующие вопросы:
- кто сопровождает проект и когда был последний релиз;
- какие зависимости устанавливаются;
- создаются ли дополнительные процессы;
- выполняются ли сетевые запросы;
- какие файлы читаются и изменяются;
- где находятся логи и сообщения об ошибках;
- можно ли зафиксировать версию пакета вместо запуска последней доступной версии.
Команда `npx -y` удобна для быстрого теста, но она может установить пакет без отдельного шага подтверждения. Для повторяемого рабочего окружения лучше зафиксировать версию, сохранить конфигурацию в защищённом месте и обновлять сервер после проверки изменений.
Исходный код спецификации и документация не гарантируют, что каждый сторонний сервер реализован безопасно. Протокол описывает взаимодействие, а не качество конкретной программы.
Практический сценарий для логов
Предположим, проект содержит логи в `~/mcp-sandbox/logs`, а итоговый отчёт должен попасть в `~/mcp-sandbox/reports`. Не подключайте к Claude весь каталог проекта. Создайте отдельные папки и решите заранее, нужен ли серверу режим записи.
Для анализа без изменения данных достаточно разрешить только каталог логов:
json
{
«mcpServers»: {
«logs»: {
«command»: «npx»,
«args»: [
«-y»,
«@modelcontextprotocol/server-filesystem»,
«/Users/username/mcp-sandbox/logs»
]
}
}
}
Запрос к модели лучше сформулировать с ограничениями:
text
Прочитай только файлы в разрешённой папке logs.
Сгруппируй HTTP-ошибки по коду и URL за указанную дату.
Ничего не изменяй и не запускай команды.
Сначала покажи план анализа, затем результат и список использованных файлов.
Если отчёт нужно сохранить, подключите отдельную папку для вывода и сначала попросите показать содержимое будущего файла в чате. Запись выполняйте только после ручной проверки.
Ограничения, о которых важно помнить
MCP не устраняет ограничения контекстного окна и не превращает большие наборы данных в бесконечную память. Передача крупных файлов может быть медленной или привести к неполному анализу. Для логов лучше использовать фильтрацию по дате, размеру и типу события до передачи данных модели.
Есть и другие практические ограничения:
- поведение и названия инструментов зависят от конкретного сервера;
- сбой процесса может выглядеть для пользователя как ошибка вызова инструмента;
- повторный запуск после обновления конфигурации обычно требует перезапуска Claude Desktop;
- сторонний сервер может иметь собственные сетевые зависимости;
- доступ модели к инструменту не означает, что каждый вызов будет безопасным;
- секреты, попавшие в содержимое файлов или результаты запросов, могут оказаться в контексте диалога.
Перед рабочим использованием определите срок хранения логов, правила удаления чувствительных данных и перечень пользователей, которым разрешён запуск Claude Desktop с подключёнными серверами.
Следующий шаг
Начните с отдельной тестовой папки и одного сервера файловой системы. Убедитесь, что Claude видит только разрешённый каталог, затем добавьте read-only источник данных. Не подключайте базу с правами записи и не устанавливайте сервер выполнения команд, пока не появилась конкретная задача, которую нельзя решить безопаснее.
Перед переходом к рабочим данным пройдите короткий чек-лист:
- конфигурация сохранена в резервной копии;
- разрешённые пути перечислены явно;
- учётные данные базы имеют минимальные права;
- версия сервера зафиксирована или контролируется;
- сетевой доступ процесса понятен;
- тесты чтения и отказа в доступе выполнены;
- для записи и выполнения кода предусмотрена изоляция.
Источники:
- Anthropic, руководство по быстрому старту MCP: https://docs.anthropic.com/claude/docs/quickstart-mcp
- Anthropic, документация по MCP и инструментам агентов: https://docs.anthropic.com/en/docs/agents-and-tools/mcp
- Model Context Protocol, официальный сайт: https://modelcontextprotocol.io/
- Спецификация Model Context Protocol на GitHub: https://github.com/modelcontextprotocol/specification
- Репозиторий серверов Model Context Protocol: https://github.com/modelcontextprotocol/servers
