``` А можно в Codex отключить codex_app.github Думал на протяжении пары секунд Да, если речь о доступе Codex к GitHub-коннектору/интеграции, его обычно можно отключить на уровне подключений или прав доступа. Что проверить: В настройках ChatGPT/Codex Открой настройки подключений/коннекторов и отключи GitHub, либо отзови доступ для Codex/ChatGPT. В GitHub Зайди в GitHub → Settings → Applications → Authorized OAuth Apps / GitHub Apps и отзови доступ у приложения, связанного с Codex/OpenAI/ChatGPT. В конкретной среде/проекте Если codex_app.github указан как доступный tool/plugin/connector в конфиге окружения, его нужно убрать из списка разрешённых инструментов. Название похоже именно на внутренний идентификатор GitHub-коннектора. Важный нюанс: я не могу отключить его за тебя из этой беседы, но могу подсказать точное место, если покажешь, где именно ты видишь codex_app.github: в Codex CLI, web-интерфейсе, config.toml, MCP-конфиге или настройках ChatGPT. а можно просто через codex Cli отключить этот инструмент? Разберу это именно как настройку Codex CLI: нужно отличить локальные tools/MCP от встроенного коннектора, потому что отключаются они разными механизмами. Думал на протяжении 7s Да, для MCP-инструментов — можно, но для встроенного codex_app.github через Codex CLI, похоже, нет надёжного штатного способа. codex_app.github выглядит не как обычный MCP-сервер, а как встроенное app/connector-backed tool. По открытым issue в openai/codex, пользователи как раз жалуются, что CLI умеет отключать/настраивать MCP-серверы, но не даёт нормально отключить built-in apps вроде GitHub; попытки через apps.github.enabled=false тоже могут игнорироваться. Что реально можно попробовать: codex -c 'apps.github.enabled=false' или профиль в ~/.codex/config.toml: [profiles.no-github.apps.github] enabled = false запуск: codex --profile no-github Но по текущим сообщениям в репозитории Codex это может не сработать для app/connectors, даже если синтаксис выглядит логичным. Для MCP-серверов рабочая схема другая: codex -c 'mcp_servers.github.enabled=false' или в конфиге: [mcp_servers.github] enabled = false Такой подход относится именно к MCP: в обсуждениях Codex указано, что MCP обычно отключают через enabled = false в ~/.codex/config.toml или .codex/config.toml, либо через -c 'mcp_servers.<name>.enabled=false'. Самый надёжный вариант для codex_app.github сейчас — отозвать GitHub-доступ у Codex/OpenAI на стороне GitHub или ChatGPT/Codex settings, а не пытаться отключить только из CLI. Тогда даже если инструмент виден в сессии, он не сможет работать с GitHub-данными. Да, если GitHub виден именно в /mcp, это уже проще: его можно отключить как MCP-сервер, без трогания GitHub App/connector. Проверю формулировку команды аккуратно, чтобы не смешать временное отключение с записью в конфиг. Думал на протяжении 4s Да. Если в /mcp есть сервер github, то разово отключить его для запуска можно так: codex -c 'mcp_servers.github.enabled=false' Эквивалент через длинный флаг: codex --config 'mcp_servers.github.enabled=false' -c/--config принимает вложенные ключи через dot notation, например mcp_servers.context7.enabled=false; значения парсятся как TOML. Но важное различие: codex -c 'mcp_servers.github.enabled=false' — это только для этого запуска. Чтобы отключить постоянно, нужно записать в ~/.codex/config.toml: [mcp_servers.github] enabled = false Codex хранит MCP-конфигурацию в config.toml, по умолчанию в ~/.codex/config.toml. Если хочешь именно командой записать это в конфиг, можно так: python3 - <<'PY' from pathlib import Path p = Path.home() / ".codex" / "config.toml" p.parent.mkdir(parents=True, exist_ok=True) text = p.read_text() if p.exists() else "" if "[mcp_servers.github]" in text: lines = text.splitlines() out = [] in_section = False saw_enabled = False for line in lines: stripped = line.strip() if stripped == "[mcp_servers.github]": in_section = True saw_enabled = False out.append(line) continue if in_section and stripped.startswith("[") and stripped.endswith("]"): if not saw_enabled: out.append("enabled = false") in_section = False if in_section and stripped.startswith("enabled"): out.append("enabled = false") saw_enabled = True else: out.append(line) if in_section and not saw_enabled: out.append("enabled = false") p.write_text("\n".join(out) + "\n") else: with p.open("a") as f: if text and not text.endswith("\n"): f.write("\n") f.write("\n[mcp_servers.github]\nenabled = false\n") PY Потом перезапусти Codex и проверь: /mcp Если github исчез из MCP-раздела, значит отключилось. Если github_* инструменты всё равно остаются вне /mcp, это уже не MCP, а GitHub App/connector. 5:40:00] ~/~/app (main)> codex -c 'mcp_servers.github.enabled=false' Error loading config.toml: invalid transport in mcp_servers.github [5:40:01] ~/~/app (main)> Думал на протяжении нескольких секунд Да, этот error означает: одного override enabled=false недостаточно, потому что Codex всё равно валидирует секцию [mcp_servers.github] и видит там неполную/некорректную конфигурацию транспорта. Есть похожий баг/ограничение: override через --config/-c может падать с invalid transport, если MCP-сервер описан не там или неполно; при этом -c сам по себе поддерживает dot notation, но секция MCP всё равно должна проходить валидацию. Сделай так: grep -n -A20 '^\[mcp_servers\.github\]' ~/.codex/config.toml .codex/config.toml 2>/dev/null Скорее всего найдёшь что-то вроде: [mcp_servers.github] enabled = false без command, args или url. Это и ломает загрузку: Codex видит сервер github, но не понимает его transport. Чтобы отключить и не ловить ошибку, лучше не оставлять “пустую” секцию. Удали всю секцию [mcp_servers.github] из конфига: python3 - <<'PY' from pathlib import Path for p in [Path.home() / ".codex" / "config.toml", Path(".codex/config.toml")]: if not p.exists(): continue lines = p.read_text().splitlines() out = [] skip = False for line in lines: s = line.strip() if s == "[mcp_servers.github]": skip = True continue if skip and s.startswith("[") and s.endswith("]"): skip = False if not skip: out.append(line) p.write_text("\n".join(out).rstrip() + "\n") print(f"cleaned {p}") PY Потом запускай: codex и внутри: /mcp Если github исчез из MCP — готово. Если тебе нужен вариант “отключить, но оставить секцию”, тогда секция должна быть полной, например для stdio-сервера: [mcp_servers.github] enabled = false command = "npx" args = ["-y", "@modelcontextprotocol/server-github"] или для remote/url, если твоя версия Codex это поддерживает: [mcp_servers.github] enabled = false url = "https://..." Но практически: для полного отключения GitHub MCP лучше удалить всю секцию, а не оставлять только enabled = false. [5:40:01] ~/~/app (main)> grep -n -A20 '^\[mcp_servers\.github\]' ~/.codex/config.toml .codex/config.toml 2>/dev/null [5:40:39] ~/~/app (main) Думал на протяжении нескольких секунд Твой grep ничего не нашёл, значит в этих двух файлах нет секции: [mcp_servers.github] Поэтому команда: codex -c 'mcp_servers.github.enabled=false' не “отключает существующий сервер”, а фактически создаёт поверх конфига неполную MCP-секцию: [mcp_servers.github] enabled = false А Codex требует у MCP-сервера transport: command, url, http_url и т.п. Поэтому и падает: invalid transport in `mcp_servers.github` То есть в твоём случае такой командой отключить нельзя, потому что локального MCP-сервера github в конфиге нет. Проверь, откуда он реально берётся: find ~/.codex .codex -type f -maxdepth 4 -print 2>/dev/null и затем: grep -Rni 'github\|mcp_servers' ~/.codex .codex 2>/dev/null Ещё проверь переменную окружения: echo "$CODEX_HOME" Если она задана, конфиг может быть не в ~/.codex, а там: grep -Rni 'github\|mcp_servers' "$CODEX_HOME" 2>/dev/null Если после этого github всё равно виден в /mcp, но в конфиге его нет, то это, скорее всего, не твой локально объявленный MCP-сервер, а сервер/инструмент, подтянутый Codex из другого источника: workspace, аккаунт, connector/app или встроенная интеграция. В таком случае mcp_servers.github.enabled=false не поможет. Для локального MCP отключение командой работает только когда сервер уже полностью описан, например: [mcp_servers.github] command = "..." args = [...] enabled = true Тогда можно было бы: codex -c 'mcp_servers.github.enabled=false' А у тебя секции нет, поэтому текущий строгий вывод такой: через -c 'mcp_servers.github.enabled=false' этот GitHub отключить нельзя; сначала нужно найти источник, который его добавляет. ```