AGENTS.md требует сверять спорные API (Airflow и провайдеры, DDL ClickHouse)
через MCP Context7 до написания кода. У Клода Context7 подключён коннектором
claude.ai, а Codex тянет MCP только из своего конфига — и там пусто.
Проверено 2026-07-30 на codex-cli 0.145.0: codex mcp list пуст, секции mcp_servers в ~/.codex/config.toml нет.
Из-за этого правило контракта формально нарушается на каждой задаче, отданной
Кодексу: он честно отчитывается «Context7 недоступен» и сверяется по
официальной документации. Сейчас сверку приходится вешать на Клод-субагента.
Что сделать
Подключить Context7 к Codex CLI. Место решения — не этот репозиторий, а ~/dotfiles: шаблон MCP-конфига, чтобы подключение действовало во всех
проектах, а не только здесь.
Критерии приёмки
В ~/dotfiles есть шаблон конфига MCP для Codex, раскатываемый обычным
для dotfiles способом.
После раскатки codex mcp list показывает Context7.
Codex в свежем треде отвечает на проверочный вопрос по API ClickHouse,
сославшись на ответ Context7, а не на память.
Если для сервера нужен ключ — он лежит вне git, а в шаблоне только
ссылка на переменную окружения.
Границы
Правку AGENTS.md здесь не делаем: правило верное, чинится инструмент.
Другие MCP-серверы для Кодекса — по желанию, но не обязательны.
Сначала прочитать
AGENTS.md, раздел «Проверка API через MCP Context7».
codex mcp --help и текущий ~/.codex/config.toml.
## Зачем
AGENTS.md требует сверять спорные API (Airflow и провайдеры, DDL ClickHouse)
через MCP Context7 до написания кода. У Клода Context7 подключён коннектором
claude.ai, а Codex тянет MCP только из своего конфига — и там пусто.
Проверено 2026-07-30 на codex-cli 0.145.0: `codex mcp list` пуст, секции
`mcp_servers` в `~/.codex/config.toml` нет.
Из-за этого правило контракта формально нарушается на каждой задаче, отданной
Кодексу: он честно отчитывается «Context7 недоступен» и сверяется по
официальной документации. Сейчас сверку приходится вешать на Клод-субагента.
## Что сделать
Подключить Context7 к Codex CLI. Место решения — не этот репозиторий, а
`~/dotfiles`: шаблон MCP-конфига, чтобы подключение действовало во всех
проектах, а не только здесь.
## Критерии приёмки
- [ ] В `~/dotfiles` есть шаблон конфига MCP для Codex, раскатываемый обычным
для dotfiles способом.
- [ ] После раскатки `codex mcp list` показывает Context7.
- [ ] Codex в свежем треде отвечает на проверочный вопрос по API ClickHouse,
сославшись на ответ Context7, а не на память.
- [ ] Если для сервера нужен ключ — он лежит вне git, а в шаблоне только
ссылка на переменную окружения.
## Границы
- Правку AGENTS.md здесь не делаем: правило верное, чинится инструмент.
- Другие MCP-серверы для Кодекса — по желанию, но не обязательны.
## Сначала прочитать
- AGENTS.md, раздел «Проверка API через MCP Context7».
- `codex mcp --help` и текущий `~/.codex/config.toml`.
В ~/.codex/config.toml — три строки без секрета: url и bearer_token_env_var. Ключ лежит в ~/.env.secrets (права 600), файл
создаётся из готового образца bash/.env.secrets.example в dotfiles и
подхватывается bash/.bash_custom.
Проверка: codex exec в свежем треде на вопрос о синтаксисе TTL для MergeTree
вызвал context7/resolve-library-id и context7/query-docs и ответил со
ссылкой на library ID /websites/clickhouse, а не по памяти.
Решение: шаблона в ~/dotfiles не будет
Первый критерий приёмки снимается. Конфиг раскатался бы на все машины, а ключ —
нет, и получается разъезжающаяся конструкция.
Отдельно проверено: если сервер прописан, а CONTEXT7_API_KEY в окружении нет,
Codex не ругается — работает молча. То есть машина без ключа не дала бы ошибку,
а тихо вернула бы ответы по памяти. Это довод против шаблона, а не за него.
Команда подключения записана в личные заметки — на новой машине это ручной шаг.
Что стоит помнить
Первым вариантом был локальный запуск через npx -y @upstash/context7-mcp@latest --api-key .... Он рабочий, но кладёт
ключ в argv (виден в ps) и в config.toml, плюс переразрешает пакет при
каждом старте. Remote выбран ради гигиены ключа и скорости старта.
Своих HTTP-заголовков Codex не умеет, только Authorization: Bearer.
Context7 его принимает — проверено запросом к эндпоинту.
~/.bash_custom подключается только в интерактивной оболочке. При запуске
Кодекса из cron, systemd или скрипта переменную придётся передать отдельно.
## Сделано
Context7 подключён к Codex CLI 0.145.0 как remote-сервер:
```
codex mcp add context7 --url https://mcp.context7.com/mcp --bearer-token-env-var CONTEXT7_API_KEY
```
В `~/.codex/config.toml` — три строки без секрета: `url` и
`bearer_token_env_var`. Ключ лежит в `~/.env.secrets` (права 600), файл
создаётся из готового образца `bash/.env.secrets.example` в dotfiles и
подхватывается `bash/.bash_custom`.
Проверка: `codex exec` в свежем треде на вопрос о синтаксисе TTL для MergeTree
вызвал `context7/resolve-library-id` и `context7/query-docs` и ответил со
ссылкой на library ID `/websites/clickhouse`, а не по памяти.
## Решение: шаблона в ~/dotfiles не будет
Первый критерий приёмки снимается. Конфиг раскатался бы на все машины, а ключ —
нет, и получается разъезжающаяся конструкция.
Отдельно проверено: если сервер прописан, а `CONTEXT7_API_KEY` в окружении нет,
Codex не ругается — работает молча. То есть машина без ключа не дала бы ошибку,
а тихо вернула бы ответы по памяти. Это довод против шаблона, а не за него.
Команда подключения записана в личные заметки — на новой машине это ручной шаг.
## Что стоит помнить
- Первым вариантом был локальный запуск через
`npx -y @upstash/context7-mcp@latest --api-key ...`. Он рабочий, но кладёт
ключ в `argv` (виден в `ps`) и в `config.toml`, плюс переразрешает пакет при
каждом старте. Remote выбран ради гигиены ключа и скорости старта.
- Своих HTTP-заголовков Codex не умеет, только `Authorization: Bearer`.
Context7 его принимает — проверено запросом к эндпоинту.
- `~/.bash_custom` подключается только в интерактивной оболочке. При запуске
Кодекса из cron, systemd или скрипта переменную придётся передать отдельно.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Зачем
AGENTS.md требует сверять спорные API (Airflow и провайдеры, DDL ClickHouse)
через MCP Context7 до написания кода. У Клода Context7 подключён коннектором
claude.ai, а Codex тянет MCP только из своего конфига — и там пусто.
Проверено 2026-07-30 на codex-cli 0.145.0:
codex mcp listпуст, секцииmcp_serversв~/.codex/config.tomlнет.Из-за этого правило контракта формально нарушается на каждой задаче, отданной
Кодексу: он честно отчитывается «Context7 недоступен» и сверяется по
официальной документации. Сейчас сверку приходится вешать на Клод-субагента.
Что сделать
Подключить Context7 к Codex CLI. Место решения — не этот репозиторий, а
~/dotfiles: шаблон MCP-конфига, чтобы подключение действовало во всехпроектах, а не только здесь.
Критерии приёмки
~/dotfilesесть шаблон конфига MCP для Codex, раскатываемый обычнымдля dotfiles способом.
codex mcp listпоказывает Context7.сославшись на ответ Context7, а не на память.
ссылка на переменную окружения.
Границы
Сначала прочитать
codex mcp --helpи текущий~/.codex/config.toml.Сделано
Context7 подключён к Codex CLI 0.145.0 как remote-сервер:
В
~/.codex/config.toml— три строки без секрета:urlиbearer_token_env_var. Ключ лежит в~/.env.secrets(права 600), файлсоздаётся из готового образца
bash/.env.secrets.exampleв dotfiles иподхватывается
bash/.bash_custom.Проверка:
codex execв свежем треде на вопрос о синтаксисе TTL для MergeTreeвызвал
context7/resolve-library-idиcontext7/query-docsи ответил соссылкой на library ID
/websites/clickhouse, а не по памяти.Решение: шаблона в ~/dotfiles не будет
Первый критерий приёмки снимается. Конфиг раскатался бы на все машины, а ключ —
нет, и получается разъезжающаяся конструкция.
Отдельно проверено: если сервер прописан, а
CONTEXT7_API_KEYв окружении нет,Codex не ругается — работает молча. То есть машина без ключа не дала бы ошибку,
а тихо вернула бы ответы по памяти. Это довод против шаблона, а не за него.
Команда подключения записана в личные заметки — на новой машине это ручной шаг.
Что стоит помнить
npx -y @upstash/context7-mcp@latest --api-key .... Он рабочий, но кладётключ в
argv(виден вps) и вconfig.toml, плюс переразрешает пакет прикаждом старте. Remote выбран ради гигиены ключа и скорости старта.
Authorization: Bearer.Context7 его принимает — проверено запросом к эндпоинту.
~/.bash_customподключается только в интерактивной оболочке. При запускеКодекса из cron, systemd или скрипта переменную придётся передать отдельно.