Unofficial MCP server for the Mutagen SEO API: Wordstat frequencies, competition, semantic core
Runs on your machine from its package; the steps are below.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y mutagen-ru-mcp
MCP client config
{
"mcpServers": {
"mutagen-mutagen-ru-unofficial": {
"command": "npx",
"args": [
"-y",
"mutagen-ru-mcp"
]
}
}
}Неофициальный проект, не связан с Мутагеном. Данные принадлежат Мутагену (mutagen.ru).
Русский · English
Мутаген для нейросетей. mutagen-ru-mcp — MCP-сервер для Мутагена: Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf и другие MCP-клиенты получают частоты Вордстата, хвосты, конкуренцию, отчеты Мега-инструмента и готовые сценарии: «собери ядро за 20 ₽», «разложи фразы по страницам», «дай минус-слова для Директа». Перед каждым платным вызовом агент видит смету, а жесткий предел трат задаете вы.
Мутаген для кода. Тот же пакет — это CLI mutagen-ru и типизированная библиотека для Node.js. Ядро можно пересобирать по расписанию в GitHub Actions или cron, выгружать в CSV, XLSX и JSON, складывать в базу и получать pull request с новыми фразами раз в неделю. Кэш, журнал задач и лимит бюджета работают одинаково в MCP, CLI и библиотеке.
Нужен Node.js 22.12 или новее.
export MUTAGEN_API_KEY=ваш_ключ
npx -y -p mutagen-ru-mcp mutagen-ru balance
Баланс бесплатный. Если ответ пришел, ключ работает.
MCP-сервер запускается так: npx -y mutagen-ru-mcp. Обычно его запускает сам клиент, команда ниже уже вписана в конфиги.
Во всех примерах MUTAGEN_BUDGET_RUB — предел трат в рублях на весь процесс MCP-сервера (пока клиент его не перезапустит). Без него действует 50 ₽.
claude mcp add --env MUTAGEN_API_KEY=ваш_ключ --env MUTAGEN_BUDGET_RUB=50 \
--transport stdio --scope user mutagen -- npx -y mutagen-ru-mcp
--scope user подключает сервер во всех проектах. Проверка: claude mcp get mutagen.
Файл claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"mutagen": {
"command": "npx",
"args": ["-y", "mutagen-ru-mcp"],
"env": {
"MUTAGEN_API_KEY": "ваш_ключ",
"MUTAGEN_BUDGET_RUB": "50"
}
}
}
}
После правки перезапустите Claude Desktop.
~/.codex/config.toml:
[mcp_servers.mutagen]
command = "npx"
args = ["-y", "mutagen-ru-mcp"]
startup_timeout_sec = 30 # первый запуск npx скачивает пакет
tool_timeout_sec = 120
[mcp_servers.mutagen.env]
MUTAGEN_API_KEY = "ваш_ключ"
MUTAGEN_BUDGET_RUB = "50"
Чтобы не хранить ключ в файле, замените таблицу env строкой env_vars = ["MUTAGEN_API_KEY"]: Codex передаст переменную из вашего окружения. Тот же сервер одной командой: codex mcp add mutagen --env MUTAGEN_API_KEY=ваш_ключ -- npx -y mutagen-ru-mcp.
.cursor/mcp.json в проекте или ~/.cursor/mcp.json для всех проектов:
{
"mcpServers": {
"mutagen": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mutagen-ru-mcp"],
"env": {
"MUTAGEN_API_KEY": "${env:MUTAGEN_API_KEY}",
"MUTAGEN_BUDGET_RUB": "50"
}
}
}
}
${env:MUTAGEN_API_KEY} берет ключ из окружения, поэтому файл можно класть в git.
.vscode/mcp.json. VS Code спросит ключ при первом запуске и сохранит его в защищенном хранилище:
{
"inputs": [
{
"type": "promptString",
"id": "mutagen-key",
"description": "Ключ API Мутагена (https://mutagen.ru/?api_config)",
"password": true
}
],
"servers": {
"mutagen": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mutagen-ru-mcp"],
"env": {
"MUTAGEN_API_KEY": "${input:mutagen-key}",
"MUTAGEN_BUDGET_RUB": "50"
}
}
}
}
Файл mcp_config.json открывается из панели Cascade: меню ... → MCPs → Open MCP config file. Сейчас он лежит в ~/.config/devin/mcp_config.json (Windows: %APPDATA%\devin\mcp_config.json), в старых версиях Windsurf — в ~/.codeium/windsurf/mcp_config.json.
{
"mcpServers": {
"mutagen": {
"command": "npx",
"args": ["-y", "mutagen-ru-mcp"],
"env": {
"MUTAGEN_API_KEY": "${env:MUTAGEN_API_KEY}",
"MUTAGEN_BUDGET_RUB": "50"
}
}
}
}
Те же конфиги отдельными файлами лежат в examples/clients.
Сервер по HTTP. Для клиентов, которые подключаются по адресу, есть Streamable HTTP:
MUTAGEN_API_KEY=ваш_ключ npx -y mutagen-ru-mcp --http --port 3333
# адрес для клиента: http://127.0.0.1:3333/mcp
Если слушать не localhost (--host 0.0.0.0), обязателен токен MUTAGEN_MCP_HTTP_TOKEN: клиент передает его в заголовке Authorization: Bearer .... Запросы из браузера с заголовком Origin сервер принимает только с localhost; другие адреса перечислите через запятую в MUTAGEN_MCP_ALLOWED_ORIGINS. Бюджет MUTAGEN_BUDGET_RUB общий для всех HTTP-сессий процесса.
Ниже — запросы, как их пишут в чате, инструменты, которые вызовет агент, и что получится. Ниша для примеров — натяжные потолки, регион Вордстата — Россия (225). Где написано «живой ответ», это настоящий результат запроса к Мутагену от 14.10.2026, сокращенный до первых строк. Где написано «пример», таблица показывает форму ответа, а цифры условные.
Цены взяты из живой проверки 14.10.2026: частота 0,02 ₽ за фразу и вид, «Ключи Вордстата» 0,02 ₽ (200 фраз) или 0,20 ₽ (2000 фраз), конкуренция 0,30 ₽ за фразу. Отчеты Мега-инструмента денег не списывают, но требуют подписку и расходуют суточную квоту запросов.
Собери семантическое ядро для раздела «натяжные потолки» по маркерам «натяжные потолки» и «потолки под ключ». Бюджет 15 рублей, регион Россия.
Агент: mutagen_build_core с dry_run: true → показывает смету → после вашего «да» тот же вызов без dry_run. Сценарий собирает хвосты маркеров, убирает дубли и явный мусор («скачать», «вакансии», «б/у» и т. п.), снимает точную частоту "!фраза" и группирует фразы в кластеры. MCP-prompt build-core ведет агента по этим шагам.
Смета — живой ответ --dry-run для двух маркеров:
| Шаг | Метод | Единиц | Сумма |
|---|---|---|---|
| Хвосты маркеров (200 фраз) | parser.get, wordstat_key_50 | 2 | 0,04 ₽ |
| Точная частота | parser.mass.new, wordstat_qs | 500 | 10,00 ₽ |
| Итого | 10,04 ₽ |
Если бюджет меньше сметы, план уменьшается до бюджета: при 1,5 ₽ сценарий честно пишет «план уменьшен: max_phrases 500 → 73». Результат — таблица и файл (пример):
| Фраза | Базовая частота | "!Точная" | Кластер | Маркер |
|---|---|---|---|---|
| натяжной потолок цена | 55 926 | 1 011 | натяжной потолок цена | натяжные потолки |
| сколько стоит натяжной потолок | 18 667 | 1 382 | сколько стоит натяжной потолок | натяжные потолки |
| … |
Цена: по смете, не больше budget_rub. CLI: mutagen-ru core "натяжные потолки" "потолки под ключ" --budget 15 -o core.xlsx.
Вот наше ядро (core.csv). Найди новые фразы, которых в нем еще нет, бюджет 5 рублей.
Агент: mutagen_expand_core (маркеры по умолчанию — главные фразы кластеров) или mutagen_wordstat_keywords по одной фразе. Живой ответ «Ключи Вордстата», 200 фраз, 0,02 ₽:
| Фраза | Частотность |
|---|---|
| натяжной потолок | 1 073 667 |
| потолок под натяжной потолок | 56 753 |
| натяжной потолок цена | 55 926 |
| установка натяжных потолков | 52 489 |
| натяжные потолки фото | 40 119 |
| натяжной потолок своими руками | 32 939 |
| … еще 194 строки |
С подпиской Мега-инструмента source: "serp" берет хвосты из базы Мутагена (report_keyword_tailings), без подписки — из Вордстата. source: "auto" выбирает сам. CLI: mutagen-ru keywords "натяжные потолки" --depth 200 -o tails.csv, mutagen-ru expand -i core.csv --budget 5.
Сними базовую и точную частоту по этим четырем фразам. Потом проверь конкуренцию у двух самых частотных.
Агент: mutagen_frequency с types: ["wordstat_n", "wordstat_qs"], затем mutagen_competition. Живой ответ, 4 фразы × 2 вида = 0,16 ₽:
| Фраза | Базовая | "!Точная" |
|---|---|---|
| натяжной потолок цена | 62 529 | 1 011 |
| установка натяжных потолков | 54 907 | 593 |
| натяжной потолок купить | 27 870 | 694 |
| сколько стоит натяжной потолок | 20 422 | 1 382 |
Доступны все виды частотности Вордстата: базовая n, "фразовая" q, "!точная" qs, [порядок] no, "[порядок]" qo, "[!точный порядок]" qso. Конкуренция — шкала Мутагена 0–25 (ниже 5 — низкая), плюс частота в кавычках, число хвостов, ставки Директа и витальный сайт (пример):
| Фраза | Конкуренция (0–25) | Частота "в кавычках" | Хвосты |
|---|---|---|---|
| натяжной потолок цена | 12 | 4 800 | 950 |
Цена: частота 0,02 ₽ × фраза × вид, конкуренция 0,30 ₽ × фраза, повтор той же фразы в течение 7 дней бесплатный. Конкуренция зависит от связи Мутагена с Яндекс Директом и может считаться очень долго, см. ограничения. CLI: mutagen-ru freq -t n,qs -i phrases.txt, mutagen-ru competition -i top.txt.
Разложи фразы из tails.csv по страницам: какие фразы вести на одну страницу.
Агент: mutagen_cluster. Три режима:
lexical — бесплатно и без обращения к API: группировка по общим словам с учетом словоформ (стеммер Snowball);serp — по совпадению URL в топе выдачи, как кластеризация на сайте Мутагена; нужна подписка, 1 запрос квоты на фразу, до 300 фраз;project — забрать готовые кластеры проекта «Избранного» по его id (бесплатно).Живой ответ, lexical, 40 фраз, бесплатно (сокращено):
| Кластер | Фраза | Частота |
|---|---|---|
| натяжной потолок цена | натяжной потолок цена | 55 926 |
| натяжной потолок цена | стоимость натяжного потолка | 11 164 |
| натяжной потолок цена | натяжной потолок цена за м2 | 4 421 |
| точечные светильники для натяжного потолка | точечные светильники для натяжного потолка | 5 767 |
| точечные светильники для натяжного потолка | встраиваемый светильник в натяжной потолок | 3 499 |
| натяжные потолки скрытый карниз | скрытый карниз в натяжном потолке | 3 650 |
Лексическая группировка грубая: фразы с одинаковыми словами она объединяет, даже если интент разный (в живом прогоне «светильники» и «монтаж» попали в кластер «цена»). Для раскладки по страницам точнее режим serp. CLI: mutagen-ru cluster -i tails.csv, mutagen-ru cluster --mode serp -i tails.csv.
Предложи Title, H1 и Description для страницы цен на натяжные потолки по этим фразам.
Агент: mutagen_title_h1. Если у фраз уже есть частоты, это бесплатно. Если нет, сценарий снимет точную частоту: 0,02 ₽ за фразу. Живой ответ на 15 фраз кластера «цена»:
| Элемент | Текст | Обоснование |
|---|---|---|
| Title | Натяжной потолок цена — с установкой, за метр | главная фраза «натяжной потолок цена» (55 926) + хвосты фраз «потолок натяжной цена с установкой» (21 548) и «натяжной потолок цена за метр» (6 884) |
| H1 | Потолок натяжной цена с установкой | вторая по частоте формулировка (21 548) |
| Description | Натяжной потолок цена: с установкой, за метр. Узнайте подробнее на сайте! | главная фраза + те же уточнения + призыв |
Слова не склоняются: уточнения берутся целыми фразами кластера или их хвостами в том виде, в каком они есть в Вордстате, поэтому заготовка не собирает слова разных фраз в одну неграмотную группу. Город добавляется через запятую. Это заготовка с обоснованием по частотам, а не готовый текст: ее правит редактор. Параметры brand и city добавляют бренд и город. CLI: mutagen-ru title -i price.csv --city Москва.
Какие запросы конкурентов из топа есть у них и нет у нашего сайта example.ru?
С подпиской агент вызовет mutagen_content_gap: ключи вашего домена и 5 конкурентов (их Мутаген находит сам, или задайте competitors), разница — фразы, по которым у вас нет страницы. Цена: 1 запрос квоты на домен. Пример:
| Фраза | Частота | Конкурентов | Лучшая позиция | Лучший конкурент |
|---|---|---|---|---|
| натяжной потолок в ванной | 17 610 | 3 | 2 | a.ru |
Без подписки: выгрузите список фраз, под которые у вас уже есть страницы (pages.txt), и сравните его с ядром бесплатной локальной операцией:
mutagen-ru text compare -i pages.txt -i core.csv --implicit
Строки с only_b — фразы ядра без страницы. --implicit считает одинаковыми фразы, которые отличаются только формой слов или порядком.
На каких позициях example.ru по запросам про натяжные потолки?
Агент: mutagen_domain_report с report_keywords_organic (ключи и позиции домена) или mutagen_keyword_report с report_keyword_positions_organic (топ-50 по фразе). Нужна подписка, 1 запрос квоты. Пример (колонки отчета Мутагена):
| keyword | position | region_wsn | page |
|---|---|---|---|
| натяжные потолки под ключ | 7 | 3 100 | https://example.ru/catalog/ |
Честно: это позиции из базы Мутагена, которую он обновляет периодически, а не съем выдачи в реальном времени. В API нет инструмента, который проверит позицию прямо сейчас. Бесплатной альтернативы внутри Мутагена нет. Позиции своего сайта можно смотреть в Яндекс Вебмастере.
Подготовь минус-слова для кампании по натяжным потолкам.
Агент: mutagen_minus_words (MCP-prompt direct-prep). По готовому списку фраз — бесплатно, по маркерам — сначала собирает «Ключи Вордстата» (0,02 ₽ за маркер). Живой ответ на 200 фраз, бесплатно:
-своими -руками -видео -фото -как -сделать -самостоятельно -авито
| Слово | Категория | Спорно | Фраз | Сумма частот |
|---|---|---|---|---|
| своими руками | Своими руками | нет | 9 | 65 594 |
| фото | Фото и видео | нет | 3 | 45 175 |
| работа | Работа и вакансии | да | 1 | 9 173 |
| отзывы | Отзывы и обсуждения (спорно) | да | 1 | 7 130 |
Спорные слова в строку не попадают: решение за вами (include_disputed или --disputed добавит их). Ставки и прогноз Директа — mutagen_direct_bids, 0,02 ₽ за фразу, но сейчас этот сбор может идти очень долго, см. ограничения. CLI: mutagen-ru minus -i tails.csv, mutagen-ru minus "натяжные потолки" --budget 1.
Кто конкуренты example.ru в выдаче и по каким запросам они нас обходят?
Агент: mutagen_domain_report с report_domain_competitors (конкуренты по пересечению ключей), затем report_keywords_organic по конкуренту и mutagen_content_gap. Все это — отчеты Мега-инструмента: нужна подписка, 1 запрос квоты на отчет. Пример (колонки отчета Мутагена):
| domain | visibility | domain_organic_keywords |
|---|---|---|
| a.ru | 41,2 | 5 600 |
Без подписки: соберите ядро по маркерам, которые продвигает конкурент (mutagen_build_core), и сравните его со своим списком через mutagen_text с операцией compare.
Составь контент-план информационных статей по этим фразам.
Агент: mutagen_content_plan (MCP-prompt content-plan). По готовому списку — бесплатно: сценарий находит вопросы, группирует их и сортирует темы по сумме частот. По маркерам — сначала собирает фразы (с подпиской — хвосты-вопросы Мега-инструмента, без нее — Вордстат). Живой ответ на 200 фраз, бесплатно:
| Тема статьи | Главный запрос | Сумма частот | Вопросов |
|---|---|---|---|
| Как снять натяжной потолок? | как снять натяжной потолок | 154 372 | 26 |
| Натяжной потолок сколько? | натяжной потолок сколько | 55 783 | 3 |
| Чем отмыть натяжной потолок? | чем отмыть натяжной потолок | 10 198 | 2 |
| Можно ли делать натяжной потолок? | можно ли делать натяжной потолок | 2 376 | 1 |
| Что сначала обои или натяжной потолок? | что сначала обои или натяжной потолок | 2 282 | 1 |
Заголовки — черновые, их стоит переписать. Для выбранных тем агент может вызвать mutagen_title_h1. CLI: mutagen-ru plan -i tails.csv -o plan.xlsx.
Все примеры лежат в examples/. Для CLI в CI и cron есть два важных флага: --yes подтверждает смету без вопроса (без него неинтерактивный запуск дороже 1 ₽ завершится с кодом 3) и --budget N ограничивает траты одного запуска.
examples/github-actions/weekly-core.yml — раз в неделю собирает ядро и сохраняет XLSX и отчет о тратах как артефакт сборки. Ключ хранится в секрете репозитория MUTAGEN_API_KEY.
- run: npm install --global mutagen-ru-mcp
- run: mutagen-ru core "натяжные потолки" --budget 20 --yes -o out/core.xlsx
env:
MUTAGEN_API_KEY: ${{ secrets.MUTAGEN_API_KEY }}
MUTAGEN_BUDGET_RUB: "20"
examples/cron/weekly-core.sh пишет ядро в файл с датой, строка для crontab -e — в examples/cron/crontab.txt:
0 6 * * 1 /path/to/weekly-core.sh >> /var/log/mutagen-core.log 2>&1
У любой команды CLI есть -o файл.csv|.xlsx|.json|.ndjson, у любого инструмента MCP — save_as. Файлы MCP ложатся только в каталог MUTAGEN_OUTPUT_DIR (по умолчанию ./mutagen-results): относительный save_as считается от него, путь наружу (.., ссылки) отклоняется. Существующий файл MCP не перезаписывает, а сохраняет результат рядом как «имя (2).csv»; заменить файл — overwrite: true. Только для stdio MUTAGEN_ALLOW_ANY_OUTPUT_PATH=1 разрешает любой путь. CSV рассчитан на русский Excel: разделитель «;», десятичная запятая, BOM, защита от формул в ячейках. В конце каждого файла есть строка «Данные: Мутаген (mutagen.ru)» (в XLSX — лист «Источник»): этого требуют условия API Мутагена.
mutagen-ru freq -t n,qs -i phrases.txt -o freq.xlsx
mutagen-ru keywords "натяжные потолки" --format json > tails.json
Есть два честных способа:
Разово. Файл → Импорт → Загрузка → core.csv, тип разделителя «Точка с запятой».
Автоматически. IMPORTDATA читает только CSV с запятыми или TSV по публичной ссылке. examples/google-sheets/to-sheets-csv.mjs переводит JSON-выгрузку CLI в CSV с запятыми. Положите его в публичный репозиторий или на любой публичный адрес и вставьте в ячейку:
=IMPORTDATA("https://raw.githubusercontent.com/SVorobiev-ru/REPO/main/semantic/core.sheets.csv")
Google Таблицы перечитывают файл сами, с задержкой. Файл из приватного репозитория так не открыть.
examples/db/to-sqlite.mjs складывает JSON-выгрузку в SQLite через встроенный node:sqlite (Node 22.13+ или 24), с датой сбора. По этой таблице легко смотреть историю частот:
mutagen-ru core "натяжные потолки" --budget 20 --yes -o core.json
node examples/db/to-sqlite.mjs core.json semantic.db
Библиотека экспортирует то же, на чем работают CLI и MCP: клиент API (MutagenClient), сессию с бюджетом, кэшем и журналом (MutagenSession), сценарии (buildCore, expandCore, кластеризация, минус-слова и другие), локальную обработку фраз и выгрузку (writeTable). Полный пример — examples/node/build-core.mjs:
import { BudgetError, buildCore, loadConfig, MutagenSession, writeTable } from "mutagen-ru-mcp";
const session = MutagenSession.fromConfig(loadConfig()); // ключ и бюджет из переменных окружения
const params = { seeds: ["натяжные потолки"], budgetRub: 15 };
let result;
try {
result = await buildCore(session, params);
} catch (error) {
if (!(error instanceof BudgetError) || error.kind !== "needs_confirmation") throw error;
// Смета выше MUTAGEN_AUTO_APPROVE_RUB: подтверждаем ее токеном из ошибки.
result = await buildCore(session, params, { confirmToken: error.confirmToken });
}
await writeTable(result.table, "core.xlsx");
examples/github-actions/weekly-core-pr.yml: CLI собирает ядро, бесплатная локальная команда mutagen-ru text compare сравнивает его с прошлым semantic/core.csv, новые фразы попадают в semantic/new-phrases.txt, и peter-evans/create-pull-request@v8 открывает PR с обновленным ядром. Вы смотрите diff и решаете, что взять.
Для этого в настройках репозитория включите Settings → Actions → General → Workflow permissions → «Allow GitHub Actions to create and approve pull requests».
22 инструмента MCP и 18 команд CLI. Группа — значение для MUTAGEN_TOOLS.
| Инструмент MCP | Команда CLI | Что делает | Цена | Группа |
|---|---|---|---|---|
mutagen_balance | balance | Баланс аккаунта | бесплатно | basic |
mutagen_spending | spending | Траты и остаток бюджета, журнал платных вызовов | бесплатно, локально | basic |
mutagen_estimate | estimate | Смета плана вызовов | бесплатно, локально | basic |
mutagen_mass_tasks | mass list | Массовые задания парсера | бесплатно | basic |
mutagen_mass_result | mass get <id> | Результат массового задания | бесплатно | basic |
mutagen_project_keywords | projects <id> | Ключи и кластеры проекта «Избранного» | бесплатно | basic |
mutagen_frequency | freq | Частотность Вордстата, 6 видов, регион | 0,02 ₽ × фраза × вид | parser |
mutagen_wordstat_keywords | keywords | Левая колонка Вордстата: 200 или 2000 фраз | 0,02 ₽ (200), 0,20 ₽ (2000) | parser |
mutagen_direct_bids | bids | Ставки и прогноз Яндекс Директа | 0,02 ₽ × фраза | parser |
mutagen_competition | competition | Конкуренция 0–25 и статистика фразы | 0,30 ₽ × фраза, повтор за 7 дней бесплатно | parser |
mutagen_keyword_report | report keyword <отчет> <фраза> | Отчеты по фразе: статистика, хвосты, вопросы, вариации, LSI, топ-50, реклама | подписка, 1 запрос квоты | serp |
mutagen_domain_report | report domain <отчет> <домен> | Отчеты по сайту: ключи, рост и падение, страницы, конкуренты, реклама | подписка, 1 запрос квоты | serp |
mutagen_page_report | report page <отчет> <URL> | Отчеты по странице: ключи, конкуренты, упущенные ключи | подписка, 1 запрос квоты | serp |
mutagen_serp_report | report raw <отчет> | Любой отчет mutagen.serp.report с фильтрами | подписка, 1 запрос квоты | serp |
mutagen_build_core | core | Семантическое ядро по маркерам | по смете, не больше бюджета | scenarios |
mutagen_expand_core | expand | Новые фразы для готового ядра | по смете, не больше бюджета | scenarios |
mutagen_cluster | cluster | Кластеры: лексически, по выдаче, из «Избранного» | бесплатно; по выдаче — подписка, 1 запрос квоты на фразу | scenarios |
mutagen_title_h1 | title | Title, H1, Description кластера | бесплатно с частотами, иначе 0,02 ₽ × фраза | scenarios |
mutagen_content_gap | gap | Фразы конкурентов, которых нет у сайта | подписка, 1 запрос квоты на домен | scenarios |
mutagen_minus_words | minus | Минус-слова для Директа | по фразам бесплатно, по маркерам по смете | scenarios |
mutagen_content_plan | plan | Контент-план из вопросов | по фразам бесплатно, по маркерам по смете | scenarios |
mutagen_text | text <операция> | Дубли и неявные дубли, словарь, комбинатор, сравнение списков, фильтр, вопросы, подсчет | бесплатно, без API | text |
У платных инструментов MCP есть dry_run (только смета), confirm_token (подтверждение сметы), force_refresh (не брать из кэша), save_as и overwrite (сохранить в файл в MUTAGEN_OUTPUT_DIR, заменить существующий), fields и limit (сократить ответ). В CLI им соответствуют --dry-run, --yes, --refresh, -o, --limit. Справка по каждой команде: mutagen-ru <команда> --help.
Еще MCP-сервер отдает:
mutagen://reference/reports (отчеты и колонки Мега-инструмента), mutagen://reference/regions (регионы), mutagen://reference/prices (цены методов и дата проверки);build-core, expand-core, direct-prep, content-plan — готовые сценарии для агента.Коды выхода CLI: 0 — успех, 1 — ошибка API, 2 — неверные аргументы, 3 — нужно подтверждение сметы (--yes), 4 — превышен бюджет или включен режим «только бесплатное», 130 — прервано.
--dry-run в CLI и dry_run: true в MCP показывают план и цену без обращения к API. mutagen_estimate и mutagen-ru estimate считают смету любого плана: mutagen-ru estimate --freq 500 -t n,qs --competition 50 → 35,00 ₽.MUTAGEN_BUDGET_RUB (по умолчанию 50 ₽) — жесткий предел трат на один запуск CLI или на весь процесс MCP-сервера: все его сессии, в том числе HTTP, тратят один общий бюджет до перезапуска. Вызов, который в него не помещается, отклоняется до обращения к API. --budget N в CLI ограничивает один запуск. Сценарии с бюджетом уменьшают план так, чтобы в него уложиться.MUTAGEN_AUTO_APPROVE_RUB (по умолчанию 1 ₽) идут без вопросов. Дороже — CLI спрашивает «Продолжить?» или ждет --yes, а MCP возвращает смету и confirm_token. Если клиент умеет спрашивать человека через свой интерфейс (elicitation), подтверждение спрашивается у вас.MUTAGEN_FREE_ONLY=1 или --free-only: любой платный вызов отклоняется, бесплатные (баланс, массовые задания, локальная обработка) работают.MUTAGEN_CACHE_TTL_*_DAYS). Повторный запрос из кэша бесплатный. Баланс и статусы задач не кэшируются. Обойти кэш: --refresh или force_refresh, отключить: --no-cache или MUTAGEN_NO_CACHE=1.processing; повторите вызов позже — это бесплатно. Новую платную задачу вместо зависшей создает --new-task или new_task: true.MUTAGEN_TOOLS оставляет только нужные группы: например, basic,parser,text — около 14 тыс. символов. Группы: basic, parser, serp, scenarios, text.save_as. fields и limit убирают лишние колонки и строки, например 30 колонок прогноза Директа.Все настройки — переменные окружения. Пример — .env.example.
| Переменная | По умолчанию | Что задает |
|---|---|---|
MUTAGEN_API_KEY | — | Ключ API. Без него работают только локальные операции |
MUTAGEN_BUDGET_RUB | 50 | Предел трат, ₽: на запуск CLI или на процесс MCP-сервера (общий для всех сессий) |
MUTAGEN_AUTO_APPROVE_RUB | 1 | До этой суммы вызов идет без подтверждения, ₽ |
MUTAGEN_FREE_ONLY | 0 | 1 — отклонять любой платный вызов |
MUTAGEN_TOOLS | все группы | Группы инструментов MCP: basic,parser,serp,scenarios,text |
MUTAGEN_OUTPUT_DIR | ./mutagen-results | Куда MCP сохраняет файлы; save_as не выходит за этот каталог |
MUTAGEN_ALLOW_ANY_OUTPUT_PATH | 0 | 1 — save_as может указывать любой путь; только для stdio, по HTTP не действует |
MUTAGEN_MCP_WAIT_SECONDS | 45 | Сколько вызов MCP ждет задачу Мутагена, прежде чем ответить processing |
MUTAGEN_MCP_HTTP_TOKEN | — | Bearer-токен для --http; обязателен, если --host не localhost |
MUTAGEN_MCP_ALLOWED_ORIGINS | — | Браузерные Origin через запятую, которым кроме localhost разрешен --http; без них запросы с Origin отклоняются |
MUTAGEN_CACHE_DIR | ~/.cache/mutagen-ru-mcp | Каталог кэша (Windows: %LOCALAPPDATA%\mutagen-ru-mcp\cache) |
MUTAGEN_STATE_DIR | ~/.local/state/mutagen-ru-mcp | Каталог журнала задач (Windows: %LOCALAPPDATA%\mutagen-ru-mcp\state) |
MUTAGEN_CACHE_TTL_FREQUENCY_DAYS | 7 | Срок кэша частот, дней |
MUTAGEN_CACHE_TTL_COMPETITION_DAYS | 7 | Срок кэша конкуренции, дней |
MUTAGEN_CACHE_TTL_REPORT_DAYS | 1 | Срок кэша отчетов, дней |
MUTAGEN_NO_CACHE | 0 | 1 — не читать и не писать кэш |
MUTAGEN_PRICES_JSON | — | Переопределить цены методов, если Мутаген их изменит |
MUTAGEN_CONCURRENCY | 2 | Одновременных запросов к API |
MUTAGEN_RPS | 3 | Запросов в секунду |
MUTAGEN_BASE_URL | http://api.mutagen.ru/json | Адрес API |
api.mutagen.ru нет, ключ уходит по сети открытым текстом в адресе запроса. Включите в кабинете белый список IP («Разрешить подключение только с ip»): тогда украденный ключ не сработает с чужого адреса. В наших логах, ошибках и файлах ключ заменяется на ***.confirm_token получает сам агент и может подтвердить смету без вас. Жесткий предел — только MUTAGEN_BUDGET_RUB. Ставьте его таким, какой не жалко потерять.Это официальный клиент Мутагена? Нет. Это независимый проект с открытым кодом, он не связан с Мутагеном. Данные принадлежат Мутагену, в каждом ответе и файле стоит пометка «Данные: Мутаген (mutagen.ru)».
Нужна ли подписка? Для частот, «Ключей Вордстата», конкуренции, ставок Директа и всех локальных операций — нет, хватит баланса. Подписка нужна для отчетов Мега-инструмента: хвостов из базы, позиций, ключей сайтов, конкурентов, кластеризации по выдаче.
Сколько стоит собрать ядро?
Два маркера, по 200 хвостов, точная частота для 500 фраз — 10,04 ₽. Проверка конкуренции для топ-20 фраз добавит 6 ₽. Точную смету для своих параметров покажет --dry-run.
Что работает без ключа?
mutagen_text и mutagen-ru text, лексическая кластеризация, минус-слова и контент-план по готовому списку фраз, Title и H1 по фразам с частотами. Они не обращаются к API.
Агент может потратить все деньги?
Не больше MUTAGEN_BUDGET_RUB за запуск CLI или за время работы MCP-сервера. Каждый вызов дороже MUTAGEN_AUTO_APPROVE_RUB требует подтверждения. Для полной уверенности включите MUTAGEN_FREE_ONLY=1.
Конкуренция ответила processing. Деньги списаны?
Да, при постановке задачи. Повторите тот же вызов позже: он найдет задачу в журнале и не заплатит второй раз.
Почему частоты отличаются от того, что я вижу в Вордстате? Вордстат показывает оценку, которая меняется, а разные виды частотности и способы сбора дают разные числа. См. ограничения.
Как подключить к клиенту, которого нет в списке?
Любой MCP-клиент со stdio запускает сервер командой npx -y mutagen-ru-mcp с переменной MUTAGEN_API_KEY. Клиентам, которые подключаются по адресу, подойдет npx -y mutagen-ru-mcp --http.
Ошибки, идеи и новые методы API — в issues. Как запустить проект, тесты и стиль коммитов — в CONTRIBUTING.md. Об уязвимостях — по SECURITY.md, не в открытых issue. Пожалуйста, никогда не публикуйте свой ключ API в issue и логах.
MIT. Проект неофициальный и не связан с Мутагеном. «Мутаген» и mutagen.ru принадлежат их владельцам. Данные, полученные через API, принадлежат Мутагену; условия их использования — в документации API и пользовательском соглашении.