Кодирующие агенты пишут код под тот API, который помнят, а помнят они прошлогодний. Context7 нужен, чтобы закрыть этот разрыв: он ведёт индекс документации библиотек и подсовывает агенту нужные фрагменты в тот момент, когда они понадобились. С 64 773 звёздами upstash/context7 — один из самых устанавливаемых MCP server из существующих.
При этом он уже несколько раз менял форму. Инструмента, который описывает большинство гайдов, get-library-docs, больше нет; теперь есть бесплатная квота с ключом; а ответы, которые вы получаете, зависят от того, какую версию библиотеки вы запросили, — и это легко упустить. Мы прогнали @upstash/context7-mcp 4.7.0, опубликованный 12 ноября 2026 года, через CLI MCP Inspector 14 ноября 2026 года, без API-ключа, и посмотрели, что вернулось.
Установка
Context7 работает двумя способами. Оба обращаются к одному и тому же hosted API Context7.
| Удалённо | Локально | |
|---|---|---|
| Адрес или команда | https://mcp.context7.com/mcp |
npx -y @upstash/context7-mcp |
| Ключ | заголовок Authorization: Bearer или OAuth по адресу /mcp/oauth |
флаг --api-key или CONTEXT7_API_KEY |
| Нужен Node.js | Нет | 20.18.1 или новее |
| Работает офлайн | Нет | Нет: он всё равно обращается к hosted API |
Выбирайте удалённый вариант, если только ваш клиент не умеет работать с HTTP-серверами. Локальный пакет — это тонкий клиент; в README Context7 прямо сказано, что открыт только исходный код MCP server, а индекс, парсер и краулер закрыты.
Сначала получите бесплатный ключ на context7.com. Ключи начинаются с ctx7sk- и показываются один раз.
Claude Code, удалённо:
claude mcp add --scope user --header "Authorization: Bearer YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcp
Или плагин, который использует OAuth через /mcp вместо ключа:
/plugin marketplace add upstash/context7
/plugin install context7@context7-marketplace
Cursor, в ~/.cursor/mcp.json:
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
VS Code использует servers вместо mcpServers, в .vscode/mcp.json:
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Codex:
codex mcp add context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY
Если Codex выдаёт тайм-аут при запуске, увеличьте startup_timeout_sec до 40 в его конфиге, как советует страница Context7 для Codex. Claude Desktop добавляет его как пользовательский коннектор: Settings, Connectors, Add Custom Connector, URL https://mcp.context7.com/mcp.
Context7 также предлагает npx ctx7 setup: команда выполняет вход, создаёт ключ и устанавливает либо запись MCP, либо skill для Claude Code, Cursor, Codex или OpenCode. npx ctx7 remove отменяет это. Наш конструктор конфигурации записывает обычные записи, если вы предпочитаете видеть, что куда идёт.
Два инструмента
tools/list на 4.7.0 вернул два инструмента, оба помечены как read-only и идемпотентные:
| Инструмент | Параметры | Что делает |
|---|---|---|
resolve-library-id |
libraryName, query |
Находит Context7 ID библиотеки, ранжируя результаты по вашему вопросу |
query-docs |
libraryId, query, опционально language |
Возвращает разделы документации и примеры кода для этой библиотеки |
В описаниях агенту сказано сначала выполнить resolve, если пользователь уже не дал ID вроде /vercel/next.js, и делать не больше трёх вызовов каждого инструмента на один вопрос. В обоих полях query одно и то же предупреждение: не включайте API-ключи, пароли, персональные данные и проприетарный код, потому что запрос отправляется в API Context7.
Если вы идёте по старому туториалу: get-library-docs заменён на query-docs в версии 2.0.0, а его параметры tokens, topic, page и mode убраны. Начиная с 2.2.5 сервер тихо исправляет некоторые имена аргументов, которые придумывают агенты, например question вместо query.
Что мы получили в ответ
Мы запросили resolve-library-id для "next.js" с вопросом "app router middleware". Ответ занял 2 175 байт. Первым в выдаче был /vercel/next.js: 7 338 сниппетов кода, репутация источника High, benchmark score 79.96, версии от v12.3.7 до v16.4.5 плюс canary-ветки. Следом шёл /websites/nextjs — сайт документации, проиндексированный отдельно, с 9 524 сниппетами и оценкой 76.15. Два ID для одного фреймворка — обычное дело в Context7; репозиторий и сайт индексируются как отдельные библиотеки.
Затем мы трижды вызвали query-docs:
| Library ID | Вопрос | Ответ | Блоки кода |
|---|---|---|---|
/vercel/next.js |
proxy, который перенаправляет неаутентифицированных пользователей | 8 422 байта | 5 |
/vercel/next.js |
server actions revalidatePath | 4 304 байта | 8 |
/vercel/next.js/v16.2.9 |
proxy, который перенаправляет неаутентифицированных пользователей | 5 512 байт | не считали |
Ответы компактные: несколько разделов, в каждом заголовок, ссылка на источник и пример кода, — достаточно небольшие, чтобы агент мог вызывать инструмент несколько раз за сессию и не переполнить контекст. Анонимные вызовы работали без ключа и без ошибок.
Закрепите версию
Самая важная деталь была в исходных ссылках. Ответы без закреплённой версии указывали на файлы в ветке canary репозитория Next.js: документацию по коду, который ещё не вышел. Для быстро развивающегося фреймворка документация canary может описывать API, названия или значения по умолчанию, которых нет в вашей установленной версии.
Закрепление версии это исправляет. Добавьте версию к ID — /vercel/next.js/v16.2.9 — и ответ придёт из этого релиза; у нас он оказался другим и более коротким ответом на тот же вопрос. Версии, которые хранит Context7, перечислены в выводе resolve-library-id, а ещё версию можно назвать обычными словами в промпте.
Постоянное правило избавляет от лишнего набора. Собственный совет Context7 — это строка в CLAUDE.md или в ваших правилах Cursor, которая велит агенту использовать Context7 для документации по библиотекам, настройки и конфигурации без отдельной просьбы. Мы бы добавили одно уточнение: «и используй версию из package.json».
Тарифы и лимиты
| Free | Pro | Enterprise | |
|---|---|---|---|
| Цена | $0 | $10 за место в месяц | По запросу |
| Включённые вызовы | 1 000 в месяц | 2 000 за место в месяц | 2 000 за место в месяц |
| Сверх лимита | 20 бонусных вызовов в день до сброса месяца | $5 за 1 000, без блокировки | $5 за 1 000 |
| Приватные репозитории | Нет | Да, $5 за миллион разобранных токенов | Да |
| Участники команды | Только вы | До 30 | Без ограничений, с SSO и self-hosting |
Вызов — это один поисковый запрос или один запрос документации через MCP server, CLI или REST API. Без ключа вы получаете то, что Context7 называет "low rate limits", без опубликованных цифр. Запрос сверх лимита возвращает HTTP 429 с заголовками Retry-After и RateLimit-*.
На практике каждый вопрос, на который агент отвечает с помощью Context7, стоит два вызова: один resolve и один query, а при повторных попытках — больше. Если указать ID в промпте или в правиле, шаг resolve пропускается и стоимость уменьшается вдвое.
Как документация попадает в Context7
Любой может добавить публичную библиотеку на context7.com/add-library, вставив URL GitHub — независимо от того, владеет он проектом или нет. Context7 также принимает сайты, файлы llms.txt и спецификации OpenAPI. Он индексирует Markdown, MDX, reStructuredText, блокноты и похожий текст, конвертирует PDF и DOCX, а страницы, где в основном не английский язык, пропускает. Если в репозитории мало документации, Context7 генерирует примеры из исходного кода.
Библиотеки обновляются, когда кто-то их запрашивает, а копия устарела. Насколько устарела — зависит от популярности: один день для топ-100, 15 дней для топ-1000, 30 для топ-5000 и 45 для всех остальных, причём сайты и источники llms.txt ждут на десять дней дольше. Менее популярная библиотека может отставать от собственной документации на шесть недель.
Если вы поддерживаете библиотеку, файл context7.json в корне репозитория управляет тем, что индексируется: какие папки, какая ветка, какие старые версии и какие правила добавляются в начало ответов. "disallow": true удаляет библиотеку. Если вы заявите права на неё, вы получите админ-панель и путь к значку верификации.
Безопасность
Всё, что возвращает Context7, написано кем-то другим, а часть материалов прислали люди, не владеющие проектом. Поэтому это такой же вход, как веб-страница: данные для чтения моделью, а не инструкции к выполнению.
Context7 утверждает, что прогоняет каждый присланный репозиторий и сайт через двухпроходный классификатор prompt injection и пропускает помеченные фрагменты. Библиотеки оцениваются по уровню доверия — по таким сигналам, как возраст аккаунта, звёзды и активность, — а также по бенчмарку сгенерированных вопросов разработчиков; оценка 79.96 выше — это как раз он. В блоге Upstash говорится, что значок verified пока лишь визуальный индикатор.
Об одном инциденте стоит знать. В мае 2026 года пользователи сообщили, что ответы query-docs заканчивались «системным уведомлением» с просьбой к ассистенту предложить запустить npx ctx7 setup -y (issues 2663 и 2673). Мейнтейнеры объяснили, что это был их собственный тест приглашения ко входу для анонимных пользователей, добавленный в 2.3.0, и отключили его после возражений. Источником был сервер Context7, а не документация библиотеки, но это показывает, как легко текст в результате инструмента может попросить агента выполнить команду. Команды оболочки подтверждайте сами.
Практические правила: не передавайте секреты в вопросах, отдавайте предпочтение проверенным или известным библиотекам, а на Pro или Enterprise ограничивайте доступные библиотеки политикой teamspace. Подробнее об этом классе рисков — в разделе Безопасность MCP.
Альтернативы
| Сервер | Что делает | Ключ | Примечания |
|---|---|---|---|
| Context7 | Готовый индекс документации библиотек с версиями и оценками | Бесплатный ключ | 64 773 звезды, сервер под MIT, приватный индекс |
| DeepWiki MCP | Отвечает на вопросы о любом публичном репозитории GitHub по вики, написанной ИИ | Не нужен | Размещён Cognition на mcp.deepwiki.com/mcp, бесплатно |
| GitMCP | Превращает llms.txt или README одного репозитория в эндпоинт документации |
Не нужен | 8 515 звёзд, Apache-2.0, последний пуш в мае 2026 |
| Ref | Ищет по документации и читает страницы | Обязателен | 1 186 звёзд, MIT; цены на сайте не указаны |
Context7 лучше подходит, когда нужна одна и та же библиотека в известной версии при каждом запросе. DeepWiki удобен, чтобы разобраться в незнакомом репозитории целиком. GitMCP — самый лёгкий вариант для одного проекта, который публикует хороший llms.txt. Для работы с конкретным фреймворком его собственный сервер может обойти все эти варианты: Next.js 16 отдаёт агентам документацию, совпадающую с версией, через next-devtools-mcp — об этом в нашем руководстве по Next.js MCP.
Когда это не работает
| Что вы видите | Причина | Решение |
|---|---|---|
| HTTP 429 | Достигнут лимит для бесплатного или анонимного доступа | Добавьте ключ, дождитесь ежедневного бонуса или перейдите на платный план; проверьте расход через usage endpoint API |
| Код использует API, которого нет в вашей версии | Запрос без привязки к версии обработан по более новой или canary-документации | Закрепите версию через /org/project/vX или укажите её в промпте |
| Агент ни разу не вызывает Context7 | Нет ни «use context7», ни постоянного правила | Добавьте правило в CLAUDE.md или в правила Cursor |
В туториале вызывается get-library-docs |
Туториал написан до 2.0.0 | Используйте resolve-library-id и query-docs |
| Codex падает при запуске | Таймаут запуска | Установите startup_timeout_sec в 40 |
| Библиотека устарела | Обновление выполняется по запросу, задержка до 45 дней | Обновите её на странице в Context7 или попросите мейнтейнера добавить GitHub Action |
| Возвращается не тот проект | Несколько ID на одно имя | Просмотрите список resolve и выберите по сниппетам, репутации и score; затем укажите нужный ID |
Записи Context7 в нашем каталоге — с оценками проверок и командами установки — находятся в начале этой страницы.