Unleash
официальныйMCP-сервер для управления функциональными флагами Unleash и автоматизации лучших практик.
Что можно делать с Unleash MCP?
- Найти флаги и связанные ресурсы — Узнайте, какие флаги в проекте помечены определённым образом, или найдите сегменты, поля контекста, теги и окружения по имени с помощью
search. - Изучить флаг или проект — Просмотрите проект, флаг, поле контекста или сегмент целиком, включая метрики экспонирования флага в окружении, с помощью
inspect. - Проверить вычисление флага — Узнайте с помощью
evaluate, включён ли флаг, выключен или его состояние неизвестно для заданного контекста в окружении. - Включить или выключить флаги — Включите флаг для аудиторий, распределив их по процентам или шаблону, либо выключите его с помощью
release. При необходимости будет создан запрос на изменение. - Проводить A/B-тесты — Назначьте аудиториям контрольные и тестовые значения, распределив их по долям или поровну, либо остановите тест с помощью
experiment. - Просмотреть недавние изменения — Узнайте с помощью
audit, что изменилось, кто и когда внёс изменения за последние 31 день.
Документация
MCP-сервер Unleash
MCP-сервер, который позволяет ИИ-агентам работать с Unleash так же, как вы работали бы в интерфейсе Unleash: находить флаги, запускать их, проверять, кому они доступны, и смотреть, что изменилось. Сервер находится в альфа-версии и не опубликован в npm, поэтому его нужно запускать из исходного кода.
Инструменты
| Инструмент | Описание | Пример запроса |
|---|---|---|
search | Находит проекты, флаги, сегменты, поля контекста, теги, типы тегов, создателей флагов, шаблоны релизов, типы событий и окружения по названию. | "Какие флаги в проекте checkout помечены тегом team:payments?" |
inspect | Показывает полную информацию о проекте, флаге, поле контекста или сегменте, а также метрики использования флага в окружении. | "Покажи всё о флаге new-checkout." |
evaluate | Определяет, включён ли флаг, выключен или его состояние неизвестно для контекста в окружении. | "Доступен ли new-checkout пользователю 42 в production?" |
release | Включает флаг для аудиторий, распределяет их по значениям или использует шаблон релиза, либо выключает флаг. Создаёт флаг, если он не существует. Открывает запрос на изменение, если этого требует окружение. | "Запусти new-checkout для 10% пользователей в production." |
kill_switch | Включает или выключает постоянный аварийный переключатель для всех или выбранных аудиторий. Создаёт переключатель, если он не существует. Открывает запрос на изменение, если этого требует окружение. | "Выключи payments в production." |
experiment | Запускает A/B-тест: назначает аудиториям значения, например control и treatment, по долям или по одному варианту на аудиторию, либо останавливает тест. Создаёт отсутствующий флаг. Открывает запрос на изменение, если этого требует окружение. | "Раздели checkout 50/50 между control и новым потоком." |
manage_flag | Создаёт флаги, задаёт родительскую зависимость, отмечает флаги как завершённые, архивирует и восстанавливает их. Не удаляет флаги. | "Архивируй old-banner." |
configure | Изменяет поля контекста и допустимые для них значения, сегменты, типы тегов и теги, шаблоны релизов и проекты. | "Создай сегмент beta-testers для userId 1, 2 и 3." |
audit | Показывает, что изменилось, кто это изменил и когда, за период не более 31 дня. | "Что изменилось в production вчера?" |
docs | Отвечает на вопросы о практиках работы с функциональными флагами и самом Unleash, используя актуальную документацию Unleash. | "Как очистить старые флаги?" |
send_feedback | Сообщает Unleash, в чём сервер не справился. Сначала спрашивает вас, если только UNLEASH_MCP_SEND_FEEDBACK не решает иначе. | Нет: агент вызывает его самостоятельно. |
Установка локально
Вам понадобится Node 24 или новее и pnpm.
-
Клонируйте репозиторий и переключитесь на ветку
v2:git clone https://github.com/Unleash/unleash-mcp.git cd unleash-mcp git checkout v2Так вы получите исходный код v2.
-
Установите зависимости:
pnpm installNode запускает исходный код TypeScript напрямую, поэтому сборка не требуется.
-
В Unleash создайте персональный токен доступа в разделе Profile > Personal API tokens. Сервер действует с разрешениями этого пользователя.
-
Зарегистрируйте сервер в своём MCP-клиенте. Для Claude Code:
claude mcp add unleash \ -e UNLEASH_BASE_URL=https://your-instance.getunleash.io \ -e UNLEASH_PAT=user:your-personal-access-token \ -- node /absolute/path/to/unleash-mcp/src/index.tsЭто добавит в Claude Code stdio-сервер с именем
unleash. Для клиентов с настройкой через JSON, например Claude Desktop, Cursor или VS Code, добавьте это в список MCP-серверов:{ "mcpServers": { "unleash": { "command": "node", "args": ["/absolute/path/to/unleash-mcp/src/index.ts"], "env": { "UNLEASH_BASE_URL": "https://your-instance.getunleash.io", "UNLEASH_PAT": "user:your-personal-access-token" } } } } -
Попросите агента: «Перечисли мои проекты Unleash». Если он ответит списком ваших проектов, сервер работает.
Настройка локального сервера
| Переменная | Обязательная | Описание |
|---|---|---|
UNLEASH_BASE_URL | Да | URL вашего экземпляра Unleash, например https://sandbox.getunleash.io/enterprise. |
UNLEASH_PAT | Да | Персональный токен доступа, с которым сервер обращается к Unleash. |
UNLEASH_MCP_SEND_FEEDBACK | Нет | true отправляет отчёты без запроса разрешения, false исключает send_feedback. Если переменная не задана, при первом отчёте вас спросят. |
UNLEASH_FEEDBACK_URL | Нет | Экземпляр Unleash, который получает отчёты send_feedback. Если переменная не задана, используется экземпляр Unleash (https://eu.app.unleash-hosted.com/hosted/). |
UNLEASH_MCP_CONFIG_DIR | Нет | Каталог для хранения вашего ответа, feedback_consent.json. По умолчанию используется системный каталог конфигурации. |
send_feedback отправляет анонимные отчёты в Unleash, когда сервер не справился: произошла ошибка инструмента, поступил запрос, который не поддерживает ни один инструмент, или был получен неверный результат. В отчёте указываются инструмент, ошибка и MCP-клиент, в котором работает агент. Согласитесь, чтобы помочь нам исправить то, что у вас не работает.
Ничего не отправляется, пока вы не дадите согласие. При отправке первого отчёта MCP-клиент задаст вам вопрос, а ваш ответ сохранится в feedback_consent.json, поэтому вас спросят только один раз. Файл находится в каталоге unleash-mcp внутри $XDG_CONFIG_HOME, если эта переменная задана; в противном случае — в ~/Library/Application Support на macOS, %APPDATA% на Windows и ~/.config на Linux. Удалите файл, чтобы вас спросили снова.
Если вы закроете вопрос или ваш клиент не сможет его показать, отправка отзывов останется выключенной до следующего сеанса. OpenCode, Gemini и Antigravity никогда не показывают этот вопрос, поэтому в них отправка отзывов остаётся выключенной, если только UNLEASH_MCP_SEND_FEEDBACK не равно true.
Чтобы не хранить секреты в конфигурации клиента, скопируйте .env.example в .env, заполните его и запустите сервер с помощью node --env-file=.env /absolute/path/to/unleash-mcp/src/index.ts.
Подключение к удалённому серверу
Unleash Enterprise размещает этот сервер и предоставляет к нему доступ через Streamable HTTP, поэтому на вашем компьютере ничего не запускается. Администратор включает его в разделе Admin > Remote MCP Server; отчёты send_feedback отправляются, если администратор не отключит их там.
Зарегистрируйте сервер в своём MCP-клиенте. Для Claude Code:
claude mcp add unleash https://your-instance.getunleash.io/api/admin/mcp --transport http
Для Codex добавьте сервер, а затем войдите в систему:
codex mcp add unleash --url https://your-instance.getunleash.io/api/admin/mcp
codex mcp login unleash
Откроется браузер, чтобы войти в Unleash; Claude Code делает то же самое при первом использовании. Затем Unleash создаёт для клиента персональный токен доступа, действительный в течение 24 часов, и сервер действует с вашими разрешениями.
Если вход через браузер невозможен, например в CI, вместо этого передайте собственный персональный токен доступа — вход в систему не потребуется:
claude mcp add unleash https://your-instance.getunleash.io/api/admin/mcp \
--transport http \
--header "Authorization: Bearer user:your-personal-access-token"
Codex получает токен из переменной окружения, указанной в его config.toml, как bearer_token_env_var в [mcp_servers.unleash].
Разработка
- Настройка среды разработки: запуск тестов и сервера разработки в Claude Code.
- Принятые решения: почему сервер работает именно так.