К этому модулю сервер умеет много: он обращается к внешним сервисам, читает файлы, пишет в базу, отдаёт ресурсы и работает по сети. Пора задать неприятный вопрос: что произойдёт, если им воспользуется не тот, для кого он написан, или если его применят не так, как было задумано?
Вопрос не теоретический. MCP-сервер — необычная программа. Обычную программу вызывает человек, который отвечает за свои действия. Ваш сервер вызывает языковая модель, а модель принимает решения на основании текста, который прочитала. Этот текст может поступить из любого источника: из документа, из ответа стороннего сервиса, из письма, из файла, который пользователь сам положил в папку. Образуется цепочка, в которой посторонний может повлиять на то, какие функции сервера будут вызваны и с какими аргументами.
В модуле 3 этот разговор был отложен с обещанием: сетевой режим — открытая дверь, и займёмся ею здесь. Мы разберём, как ограничить сервер одной папкой и почему очевидная проверка пути не работает, где хранить ключи и пароли, чтобы они не попали в репозиторий и в журнал, почему адрес прослушивания 0.0.0.0 открывает сразу две двери, как поставить на сетевой сервер проверку доступа, зачем инструменту лимиты и какие записи нужны, чтобы утром понимать, что происходило ночью.
Обозначим границы темы. Это не курс информационной безопасности: шифрование, сетевые атаки в целом и устройство OAuth здесь не разбираются. Мы разберём только то, что касается MCP-сервера, и каждое утверждение проверим запуском.