К содержимому
Claude Code с 0:полный курс
Уровень 2 · Подключаем готовые серверы 4 мин Проверено автором · 3 июл. 2026 г.

Секреты и переменные окружения

Токены нельзя писать прямо в .mcp.json — иначе они утекут в репозиторий. Передавай их серверу через переменные окружения.

Уровень 2 · 0 / 5 уроков0%

Многие серверы требуют токен — ключ доступа к внешнему сервису (трекеру, API, базе). Главное правило: токен не место в конфиге.

Почему не в .mcp.json

Проектный .mcp.json можно закоммитить в репозиторий. Если вписать туда токен в открытом виде, он уедет в историю Git — и его увидит каждый, у кого есть доступ к репозиторию. Отозвать утёкший токен потом сложнее, чем не допустить утечки.

Плохо:

{
  "mcpServers": {
    "tracker": {
      "command": "npx",
      "args": ["-y", "tracker-mcp-server"],
      "env": { "TRACKER_TOKEN": "sk-1234-секрет-в-открытую" }
    }
  }
}

Как правильно: через переменную окружения

Токен держат в переменной окружения, а в конфиге лишь ссылаются на её имя. Сначала задаёшь переменную в своём окружении (значение остаётся у тебя, не в репозитории):

export TRACKER_TOKEN="твой-секрет"

А в конфиге передаёшь серверу не само значение, а отсылку к переменной:

{
  "mcpServers": {
    "tracker": {
      "command": "npx",
      "args": ["-y", "tracker-mcp-server"],
      "env": { "TRACKER_TOKEN": "${TRACKER_TOKEN}" }
    }
  }
}

Теперь в репозиторий попадает только имя переменной, а сам токен — нет.

Важно

Если токен всё-таки попал в конфиг и был закоммичен — считай его скомпрометированным: отзови его в сервисе и выпусти новый. Удаления из файла недостаточно, он остаётся в истории Git.

Практика в терминале

Отработай правило в тренажёре ниже: задай переменную командой export TRACKER_TOKEN=sk-demo-123, а затем убедись через echo, что значение подставляется по имени. Именно на такое имя ты и будешь ссылаться в .mcp.json — сам секрет в файл не попадает.

Проверь себя

Отвечено 0/3
Режим:

Почему нельзя писать токен прямо в проектный .mcp.json?

Как правильно передать серверу токен?

Токен случайно закоммитили в .mcp.json. Достаточно ли просто удалить его из файла?

Выполни задание в терминале и ответь на вопросы, чтобы завершить урок.

📝 Мои заметки

Сохраняется автоматически в этом браузере · видно на странице «Заметки».

Задание

Положи токен в переменную окружения: export TRACKER_TOKEN=sk-demo-123 — а потом проверь значение командой echo $TRACKER_TOKEN. Так секрет остаётся в окружении, а не в конфиге.

Tab дополнить · прошлые · Ctrl+L очистить · help команды

  • Не выполнено: Задай переменную через export
  • Не выполнено: Проверь значение через echo
  • Не выполнено: Терминал показал значение токена

Вопросы и ответы по уроку

Почему нельзя писать токен прямо в проектный .mcp.json?

Проектный конфиг коммитится. Токен в открытом виде уедет в историю Git и станет виден всем с доступом к репозиторию.

Как правильно передать серверу токен?

Токен хранят в переменной окружения; в .mcp.json попадает только имя переменной, а не само секретное значение.

Токен случайно закоммитили в .mcp.json. Достаточно ли просто удалить его из файла?

История Git хранит прошлые версии файла. Утёкший токен считают скомпрометированным: его отзывают в сервисе и выпускают новый.

Почитать по теме в блоге

Листай уроки клавишами · поиск по ⌘K