Документация docsctx
Self-hosted сервис «документация как контекст»: свежие доки ваших библиотек для LLM-агентов через MCP или REST. Полностью работает на вашей машине.
Быстрый старт
- Войдите или создайте аккаунт — первый пользователь становится администратором.
- В разделе Библиотеки нажмите «Добавить библиотеку»: укажите slug (например
fastapi) и источник, напримерgithub:fastapi/fastapi. Индексация пойдёт фоново. - Дождитесь статуса ready и проверьте поиск в карточке библиотеки.
- Создайте API-ключ в личном кабинете и подключите агентов (конфиги — во вкладке «Подключение»).
Источники
| Тип | Формат | Что делает сервис |
|---|---|---|
github:owner/repo[@ref] | репозиторий или ветка/тег | Клонирует docs-каталоги и markdown, срез по коммиту, правила из context7.json. |
llmstxt:URL | https://…/llms.txt | Забирает готовый LLM-манифест документации и связанные страницы. |
html:URL | адрес сайта документации | BFS-краулер с robots.txt, задержкой и лимитом страниц; контейнер/селектор настраивается. |
local:/path | путь на машине сервиса | Индексирует локальный каталог markdown (приватные доки, air-gap). |
openapi:URL | JSON/YAML спека | Генерирует обзор + страницу на каждый тег операций: параметры, схемы, ответы. |
package:npm|pypi|crates:имя | имя[@версия] | README и метаданные пакета из реестра, версия пиннится явно. |
MCP-сервер
Запуск:
python -m docsctx.mcp_server (stdio) или HTTP: http://host:8902/mcp. Инструкции для агента настраиваются в Настройках.| Инструмент | Назначение |
|---|---|
resolve_library_id | Найти идентификатор библиотеки по названию. |
get_library_docs | Документация по запросу с учётом токен-бюджета, версии и правил библиотеки. |
search_library | Поиск по чанкам одной библиотеки (списком, без сборки). |
list_versions | Доступные версии библиотеки и активная. |
get_page | Конкретная страница/раздел по URL или заголовку. |
list_libraries | Каталог проиндексированных библиотек. |
sync_library_tool | Запустить пере-индексацию источника. |
report_chunk | Жалоба агента на неверный фрагмент → очередь модерации. |
Свежесть и обновление
- Каждая версия хранит срез источника (commit / ETag / mtime) и дату.
- Кнопка «Проверить обновления источников» в админ-обзоре сравнивает срезы и пере-синхронизирует изменённые.
- Webhook из CI:
POST /admin/hooks/refresh/{slug}?token=…(токен задаётся в настройках).
Качество и модерация
- Дедупликация чанков по нормализованному тексту — повторов в выдаче нет.
- Агент вызывает
report_chunk/POST /v1/report— фрагмент попадает в очередь модерации. - LLM-сниппеты проходят модерацию: в выдаче агентов только approved.
- Правила библиотеки (context7.json-style) редактируются администратором и выдаются агенту в начале контекста.
CLI (на машине сервиса)
docsctl serve # API + MCP docsctl add <slug> <source> # добавить библиотеку docsctl sync <slug> # пере-индексировать docsctl seed # добавить пул популярных библиотек