# Context7 MCP: что это, установка и подключение

> Context7 - сторонний MCP-сервер Upstash: отдаёт модели документацию и примеры кода библиотек. Два инструмента, пакет @upstash/context7-mcp, работает по Streamable HTTP и stdio

Страница: https://mcpdoc.ru/servers/context7/
Указатель сайта: https://mcpdoc.ru/llms.txt

Context7 - сторонний сервер компании Upstash. Он отдаёт модели документацию и примеры кода для библиотек. К проекту MCP он не относится: это не официальный и не эталонный сервер, в репозитории эталонных серверов его нет.

У сервера два инструмента: `resolve-library-id` и `query-docs`. Он работает удалённо по Streamable HTTP и локально по stdio. Редакцию протокола поставщик в документации не публикует.

сверено с первичными источниками 4 октября 2026

Сведения о сервере стадия не названа сторонний сервер, разобранный пример

- **Кто выпускает:** Upstash

- **Сторона:** сторонний разработчик

- **Где работает:** локально и удалённо

- **Пакет:** @upstash/context7-mcp (npm)

- **Версия:** 4.1.1, 2026-09-14

- **Транспорты:** stdio, Streamable HTTP

- **Редакция протокола:** не заявлена

- **Проверено:** 2026-10-04

- **Источник:** [github.com](https://github.com/upstash/context7)

Эта страница - разбор одного примера. На нём удобно показать, как читать любой сервер: отделить протокол от реализации, а реализацию - от возможностей самого сервиса. Наличие страницы не означает, что сайт советует этот сервер или проверил его код на безопасность.

## Кто его делает

Репозиторий [`upstash/context7`](https://github.com/upstash/context7/tree/bfa02ea67b5707fe0e0a673faa49d0f50b28c80b) принадлежит организации Upstash на GitHub. Код сервера опубликован под лицензией MIT, пакет называется [`@upstash/context7-mcp`](https://www.npmjs.com/package/@upstash/context7-mcp).

В [README](https://github.com/upstash/context7/blob/bfa02ea67b5707fe0e0a673faa49d0f50b28c80b/README.md) поставщик оговаривает: в репозитории лежит только исходный код сервера MCP. Серверная часть API, разбор и сбор документации закрыты и в репозиторий не входят.

## Три слоя: протокол, реализация, сервис

| Слой | Что к нему относится | Где проверять |
|---|---|---|
| Протокол MCP | вызов инструмента, список инструментов, транспорты stdio и Streamable HTTP, порядок авторизации OAuth | [спецификация](https://mcpdoc.ru/reference/protocol/) |
| Реализация Context7 | два инструмента и их аргументы, адрес сервера, заголовок с ключом, ключи запуска | репозиторий и пакет Upstash |
| Возможности сервиса | какие библиотеки есть в каталоге, насколько свежа и точна документация, ограничения по числу обращений | документация и условия Context7 |

Зачем это разделение. Протокол гарантирует только форму обмена: как клиент узнаёт об инструменте и как вызывает его. Что вернёт инструмент и насколько этому можно верить - свойство сервиса, и протокол за него не отвечает.

## Инструменты

Имена сверены с [файлом `tool-names.ts`](https://github.com/upstash/context7/blob/bfa02ea67b5707fe0e0a673faa49d0f50b28c80b/packages/mcp/src/lib/tool-names.ts) и с опубликованным пакетом 4.1.1: в обоих ровно два имени. Описания и аргументы - по README и [файлу `index.ts`](https://github.com/upstash/context7/blob/bfa02ea67b5707fe0e0a673faa49d0f50b28c80b/packages/mcp/src/index.ts).

| Инструмент | Что делает | Обязательные аргументы |
|---|---|---|
| `resolve-library-id` | по названию библиотеки находит идентификатор Context7 и возвращает подходящие библиотеки | `query` - что нужно найти; `libraryName` - название библиотеки |
| `query-docs` | по идентификатору библиотеки возвращает документацию и примеры кода | `libraryId` - идентификатор вида `/org/project` или `/org/project/version`; `query` - что найти |

Порядок вызова задан в описании инструментов: сначала `resolve-library-id`, затем `query-docs`. Исключение - когда пользователь сам назвал идентификатор.

Оба инструмента помечены в коде аннотациями `readOnlyHint: true` и `openWorldHint: true`: сервер только читает и обращается к внешнему сервису.

Имени `get-library-docs`, которое встречается в старых описаниях, в исходном коде этого выпуска нет.

Описание аргумента `query` в коде прямо говорит: запрос отправляется в API Context7, и в него не следует включать закрытые сведения - ключи, пароли, учётные данные. Это свойство реализации: то, что модель напишет в запросе, покидает вашу машину.

## Подключение

### Удалённый сервер

| Что | Значение |
|---|---|
| Адрес | `https://mcp.context7.com/mcp` |
| Адрес для OAuth | `https://mcp.context7.com/mcp/oauth` |
| Транспорт | Streamable HTTP |

```json title="Удалённый сервер с ключом"
{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

Пример взят из документации выпуска 4.1.1 и здесь не запускался.

### Локальный сервер

```json title="Локальный сервер по stdio"
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

Пример взят из документации выпуска 4.1.1 и здесь не запускался.

Локальный сервер - это тот же посредник: документацию он получает от сервиса Context7 по сети, а не хранит у себя.

## Транспорты

- **Удалённый сервер** - Streamable HTTP: так он записан в реестре и в файле `server.json` репозитория.
- **Локальный пакет** - stdio по умолчанию; ключ `--transport` принимает значения `stdio` и `http`.

Старого транспорта HTTP+SSE в исходном коде сервера нет.

## Авторизация

**Ключ API.** По README ключ необязателен, но рекомендуется: с ним выше ограничения по числу обращений. Ключ передаётся заголовком `Authorization: Bearer ...` для удалённого сервера либо ключом `--api-key` или переменной `CONTEXT7_API_KEY` для локального. В README пакета есть раздел о работе без ключа.

Какие именно ограничения действуют без ключа, на прочитанных страницах поставщика не указано.

**OAuth.** По [странице об OAuth](https://context7.com/docs/howto/oauth), сервер поддерживает OAuth 2.0 для клиентов, которые реализуют авторизацию MCP. Для этого адрес меняют с `/mcp` на `/mcp/oauth`. OAuth доступен только для удалённых подключений по HTTP; для stdio остаётся ключ.

Как авторизация устроена в самом протоколе - на странице [Авторизация](https://mcpdoc.ru/auth/).

## Что относится к сервису, а не к MCP

- **Содержимое каталога.** Поставщик пишет в README (в пересказе): проекты в Context7 добавляет сообщество, и точность, полноту и безопасность документации он гарантировать не может. Текст, который вернёт инструмент, - недоверенные данные для модели.
- **Тарифы.** У сервиса есть бесплатный план и платные планы; условия описаны на сайте поставщика.
- **Второй способ работы без MCP.** Поставщик предлагает и утилиту `ctx7` с набором навыков для агента. К протоколу это отношения не имеет.

## Запись в официальном реестре

В [MCP Registry](https://mcpdoc.ru/registry/) есть запись [`io.github.upstash/context7`](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.upstash%2Fcontext7/versions/latest): версия 4.1.1, состояние `active`, опубликована 14 сентября 2026 года. В ней указаны удалённый адрес `https://mcp.context7.com/mcp` и пакет npm `@upstash/context7-mcp`.

Что эта запись доказывает: тот, кто её опубликовал, управляет пространством имён `io.github.upstash`. Больше ничего. Реестр не проверяет код и не делает сервер официальным; подробности - на странице [Как выбрать и проверить сервер](https://mcpdoc.ru/servers/choose/).

Поиск по слову `context7` в реестре возвращает и другие записи с похожими именами от других издателей. Сверяйте имя целиком.

Файл `server.json` внутри репозитория отстаёт: в нём указана версия 4.0.3. Номер версии берите из npm или из реестра.

## Редакция протокола

В README и в документации Context7 редакция протокола не названа. Страница об OAuth ссылается на раздел авторизации спецификации редакции `2025-03-26`; ссылка на документ - не заявление о поддержке.

Строка `2026-07-28` встречается только в исходном коде: в константе `MODERN_MCP_PROTOCOL_VERSION` и в комментариях к обработчику HTTP. Опубликованный пакет 4.1.1 содержит те же строки. Комментарий в коде - не публичное обязательство поставщика, поэтому этот сайт не относит сервер ни к одной эпохе.

В зависимостях пакета 4.1.1 стоят `@modelcontextprotocol/server 2.0.0` и `@modelcontextprotocol/node 2.0.0`. Это факт о пакете. Вывода о редакции протокола из него этот сайт не делает.

## Что читать дальше

- [Как выбрать и проверить сервер](https://mcpdoc.ru/servers/choose/) - тот же порядок проверки для любого сервера.
- [Серверы компаний](https://mcpdoc.ru/servers/vendors/) - серверы, которые ведут сами владельцы сервисов.
- [Эталонные серверы](https://mcpdoc.ru/servers/overview/) - что проект MCP называет эталонным.
- [Версии протокола](https://mcpdoc.ru/protocol/versions/) - чем редакции отличаются друг от друга.
