БесплатноСредний уровень40 мин

Подключения и инструменты: MCP и внешние сервисы

Коротко

MCP (Model Context Protocol) — открытый стандарт подключения ИИ-инструментов к внешним источникам: документации, трекеру задач, базе данных, браузеру. Сервер MCP отдаёт агенту дополнительные инструменты, и агент вызывает их так же, как встроенные. Это полезно, когда вы устали копировать данные из другой системы в чат. Но каждый подключённый сервер — это новый канал, через который в контекст агента попадает чужой текст и откуда агент может совершать действия. Принцип урока: подключать мало, давать минимум прав и проверять, что именно сервер умеет.

После урока вы сможете

  • Объяснить, что такое MCP и чем сервер отличается от встроенных инструментов агента
  • Подключить сервер чтения документации в Claude Code и в Codex и проверить подключение
  • Назвать риски внешних серверов и применить принцип минимальных прав
Содержание
  1. 01Что такое MCP-сервер
  2. 02Пример: чтение документации в Claude Code
  3. 03Пример: то же в Codex
  4. 04Риски
  5. 05Принцип минимальных прав
  6. 06Что дальше

Что такое MCP-сервер

По документации Claude Code, серверы бывают двух видов:

  • Удалённый (HTTP) — размещён по адресу в сети. Для удалённых серверов документация рекомендует транспорт HTTP; транспорт SSE помечен как устаревший.
  • Локальный (stdio) — программа, которую ассистент запускает на вашей машине как подпроцесс (например, через npx). Ей доступны локальные ресурсы: браузер, файлы, сокет базы данных.

Документация Codex называет те же два вида: STDIO и Streamable HTTP. Для HTTP-серверов поддерживаются токены доступа и OAuth-вход.

Важно понимать, что сервер запускает чужой код (локальный) или принимает ваши запросы (удалённый). Anthropic проверяет коннекторы по критериям размещения в каталоге, но, как сказано в документации по безопасности, не проводит аудит безопасности и не управляет ни одним MCP-сервером. Серверы лучше писать самостоятельно или брать у поставщиков, которым вы доверяете.

Пример: чтение документации в Claude Code

Документация использует учебный сервер с полнотекстовым поиском по документации Claude Code: он размещён удалённо и не требует входа. Команды выполняйте в терминале, а не внутри сессии claude.

bash
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
claude mcp list

Первая команда регистрирует сервер под именем claude-code-docs. Вторая показывает статус: ✔ Connected означает, что всё работает; ! Needs authentication — нужен вход; ✘ Failed to connect — сервер не отвечает. Затем запустите claude и попросите: «Use the claude-code-docs server to look up what MCP_TIMEOUT does». При первом вызове сервера ассистент спросит разрешение; в выводе вызов помечен именем сервера, так вы убеждаетесь, что ответ пришёл от сервера, а не из памяти модели. Убрать сервер можно командой claude mcp remove claude-code-docs. Внутри сессии команда /mcp показывает серверы и позволяет войти.

Область действия регистрации задаёт флаг --scope: local (по умолчанию) — только вы и только этот проект, user — все ваши проекты, project — запись в .mcp.json в корне проекта, который можно коммитить. Когда ассистент впервые встречает серверы из .mcp.json, он просит их одобрить, чтобы склонированный репозиторий не мог запустить процессы на вашей машине без вашего согласия.

Пример: то же в Codex

В документации Codex примером служит стороннее решение для документации библиотек (Context7). Это именно пример из документации, а не рекомендация: правила доверия ниже действуют для него так же, как для любого сервера.

bash
codex mcp add context7 -- npx -y @upstash/context7-mcp
codex mcp list

Список серверов в интерактивной сессии показывает команда /mcp. Настройки лежат в ~/.codex/config.toml или, для доверенных проектов, в .codex/config.toml, и общие для CLI, приложения и расширения. Для OAuth-сервера вход выполняется командой codex mcp login <имя>. Секреты лучше передавать через переменные окружения; конфигурацию, где хранится клиентский секрет OAuth, документация предписывает держать приватной и вне системы контроля версий.

Риски

  • Prompt injection через ответы серверов. Сервер, который отдаёт страницы, тикеты или письма, приносит в контекст чужой текст. Если там спрятана инструкция, агент может её выполнить. Документация Claude Code прямо указывает: серверы, получающие внешний контент, увеличивают риск prompt injection. Общую защиту разбирает урок Безопасность LLM-приложений.
  • Действия с последствиями. Сервер трекера может создавать и закрывать задачи, сервер базы — менять данные. Агент вызовет их так же легко, как поиск.
  • Секреты в конфигурации. Токен в коммитимом .mcp.json или config.toml попадёт в репозиторий. Документация Claude Code поддерживает подстановку переменных окружения в .mcp.json в виде ${VAR}: храните в файле имя переменной, а значение держите вне репозитория.
  • Расход контекста. По документации, определения инструментов загружаются по требованию (поиск инструментов включён по умолчанию), но имена инструментов и инструкции серверов занимают контекст в каждой сессии. Команда /context показывает, что занимает место, а /mcp позволяет отключить неиспользуемые серверы. Для хорошо знакомых сервисов (gh, aws, gcloud) документация считает консольные утилиты более экономными, чем MCP.
  • Зависимость от чужого сервера. Сервер может измениться, исчезнуть или начать вести себя иначе. Фиксируйте версии, где это возможно (например, не @latest) и проверяйте, что подключённый сервер ведёт себя как ожидалось.

Принцип минимальных прав

  1. Сначала чтение. Подключайте серверы документации и поиска. Серверы, меняющие данные, — отдельное решение с описанием, зачем они нужны.
  2. Узкий токен. Используйте токен с правами только на чтение и только на нужный ресурс; не используйте личный токен администратора.
  3. Узкая область. Для экспериментов выбирайте local или user, а в .mcp.json проекта кладите только то, что нужно всей команде.
  4. Подтверждение действий. В Codex режим подтверждения инструментов задаётся ключом default_tools_approval_mode (auto, prompt, writes, approve); writes запрашивает подтверждение для инструментов, не помеченных как «только чтение». Отдельные инструменты можно включить или отключить ключами enabled_tools и disabled_tools. Для Claude Code правила разрешений для инструментов MCP настраиваются в разделе permissions; синтаксис правил сверьте с документацией.
  5. Чистка. Отключайте серверы, которыми давно не пользуетесь, и просматривайте список перед каждым новым проектом.

Что дальше

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

Урок позади?

Следующий урок →

Стоимость и лимиты: как не сжечь бюджет

Сделаем за васТехническая консультация до начала разработкиПлатная техническая консультация: выбор стека, архитектура MVP, ревью ТЗ и roadmap, разбор проблемы. Варианты, компромиссы и следующие шаги до начала разработки.Узнать об услуге →