Skip to main content
Glama

Кодексы и законы РФ: поиск по смыслу

Поиск по законодательству Российской Федерации (24 кодекса и 563 закона) обычными словами. Спрашиваете «что грозит за неуплату алиментов» — получаете статью 115 Семейного кодекса, хотя дословно этих слов в ней нет. Работает без интернета, целиком на вашей машине: ни запросы, ни тексты никуда не уходят.

Искать можно двумя способами: из терминала одной командой или подключив репозиторий к Claude Code как MCP-сервер — тогда поиск доступен прямо в разговоре.

Что внутри

data/       тексты документов, разобранные по статьям (29 039 статей, каждая — отдельный JSON)
CATALOG.md  перечень всех документов сборки: редакция, число статей, slug для поиска
index/      векторный индекс: по нему и идёт поиск
src/        сам поиск — MCP-сервер, команда для терминала и общий код под ними

Тексты выгружены 25 сентября 2026 года — редакции актуальны на эту дату. Источник — официальный портал pravo.gov.ru, консолидированные тексты из «Эталонного банка правовой информации». Дата редакции каждого документа по отдельности видна командой --codes-list (см. ниже) и в CATALOG.md: документы меняются в разное время, и у некоторых последняя редакция заметно старше даты выгрузки.

Related MCP server: code-memory-rs

Подготовка (один раз)

Нужен Python 3.11 или новее. Видеокарта не нужна — всё считается на процессоре.

# создать виртуальное окружение
python -m venv .venv

Дальше самое простое — попросить Claude Code: /x-prepare-system. Скилл поставит библиотеки, скачает модели и проверит, что всё работает.

То же самое одной командой, если Claude Code под рукой нет:

# Windows
.\setup.cmd --install

# Linux и macOS
./setup --install

Скачается поисковая модель (~2,3 ГБ) и вспомогательная модель-переоценщик (~0,5 ГБ). Это единственный шаг, которому нужен интернет. В репозиторий модели не входят — они слишком велики для git.

Проверить готовность в любой момент: та же команда без --install ничего не меняет, только рассказывает, что на месте, а чего не хватает.

# Windows
.\setup.cmd

# Linux и macOS
./setup

Попробовать прямо в терминале

В комплекте есть короткая обёртка — она сама подставляет пути и кодировку:

# Windows
.\laws.cmd "что грозит за неуплату алиментов"

# Linux и macOS
./laws "что грозит за неуплату алиментов"

Ответ выглядит так:

=== что грозит за неуплату алиментов ===
1. sk-rf ст. 115 — Ответственность за несвоевременную уплату алиментов  [0.0164]
   РАЗДЕЛ V. АЛИМЕНТНЫЕ ОБЯЗАТЕЛЬСТВА > ГЛАВА 17. ПОРЯДОК УПЛАТЫ И ВЗЫСКАНИЯ | действует
   1. При образовании задолженности по вине лица, обязанного уплачивать алименты...

Что ещё умеет команда (на Linux и macOS вместо .\laws.cmd пишите ./laws):

# несколько вопросов за один запуск: так быстрее, модель грузится один раз
.\laws.cmd "увольнение по собственному желанию" "продолжительность отпуска"

# статья целиком, по номеру
.\laws.cmd --article uk-rf:105

# искать только в одном документе
.\laws.cmd --code=koap-rf "превышение скорости"

# список документов с датами редакций
.\laws.cmd --codes-list

# точнее на расплывчатых вопросах, но на 4 секунды медленнее
.\laws.cmd --rerank "сосед залил квартиру кто возмещает ущерб"

# показать и статьи, утратившие силу: по умолчанию они скрыты
.\laws.cmd --repealed "запрос"

Первый запрос занимает около 6 секунд — столько грузится модель. Дальше, если вопросов несколько в одной команде, каждый следующий считается за 0,2 секунды.

Совет по формулировкам: пишите вопрос так, как спросили бы человека, а не ключевыми словами. И помните, что одно и то же слово живёт в разных документах — «испытательный срок» найдёт и трудовой, и условное осуждение из Уголовного кодекса. Если знаете, где искать, добавьте --code=tk-rf.

Если обёртка почему-то не подходит, то же самое полной командой:

# Windows, PowerShell
$env:PYTHONPATH="src"; $env:PYTHONIOENCODING="utf-8"
.venv\Scripts\python.exe -m laws_mcp.cli "вопрос"
# Linux и macOS
PYTHONPATH=src .venv/bin/python -m laws_mcp.cli "вопрос"

Подключить к Claude Code (MCP-сервер)

Если поиском пользуетесь часто, удобнее поднять сервер: модель останется в памяти, и каждый запрос будет занимать доли секунды вместо шести.

Проще всего попросить Claude Code: /x-run-mcp — скилл подключит и проверит.

Вручную — одной строкой:

# Windows, PowerShell
claude mcp add laws -e PYTHONPATH=C:\путь\к\репозиторию\src -e LAWS_ROOT=C:\путь\к\репозиторию -e PYTHONIOENCODING=utf-8 -- C:\путь\к\репозиторию\.venv\Scripts\python.exe -m laws_mcp.server
# Linux и macOS
claude mcp add laws -e PYTHONPATH=/путь/к/репозиторию/src -e LAWS_ROOT=/путь/к/репозиторию -- /путь/к/репозиторию/.venv/bin/python -m laws_mcp.server

Пути обязательно полные: Claude Code запускает сервер из своего каталога, и относительные пути не найдутся. После подключения перезапустите сессию — список инструментов читается при старте.

Сервер даёт три инструмента: найти статьи по смыслу, показать статью целиком по номеру и перечислить документы сборки.

Что этот поиск не умеет

Стоит знать заранее, чтобы не полагаться на него зря:

  • Только законы, и не всё законодательство. Внутри — кодексы и федеральные законы (24 кодекса и 563 закона), их перечень целиком лежит в CATALOG.md. Подзаконных актов (постановлений Правительства, приказов ведомств), регионального законодательства, судебной практики и разъяснений Пленума Верховного Суда здесь нет и найти их нельзя.

  • Ответ верен на дату выгрузки. Право меняется; дату показывает --codes-list.

  • Это поиск, а не юридическая консультация. Он показывает, что написано в законе; выводы и решения остаются за человеком.

  • По умолчанию ищутся только действующие статьи. Утратившие силу — с флагом --repealed.

Развернуть на сервере или доработать под себя

Claude Code с этим поможет: репозиторий устроен так, чтобы агент мог сам разобраться — рядом лежит CLAUDE.md с описанием внутреннего устройства, а в комплекте есть Dockerfile для сборки образа с поиском внутри.

Попросите его словами, например:

  • «разверни этот поиск на моём сервере в docker»

  • «подними MCP-сервер и подключи к моему Claude Code»

  • «сделай веб-интерфейс к этому поиску»

  • «проверь, всё ли готово к работе» — он запустит проверку и объяснит, чего не хватает

Из коробки есть образ, который включает и данные, и модели, так что контейнеру не нужен интернет:

# собрать образ и запустить сервер
docker build -t laws-mcp .
docker run -i --rm laws-mcp

Флаг -i у docker run обязателен: MCP-сервер общается через стандартный ввод и вывод, без него контейнер сразу завершится. Перед сборкой образа выполните подготовку — модели копируются в образ из папки models/.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    RAG-powered document search server that enables semantic search across large collections of legal and business documents (PDF, Word, Excel, PowerPoint) using local embeddings with no API costs.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables local semantic code search across repositories using natural language, with AST-aware chunking and hybrid vector/FTS5 retrieval.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides offline access to the French legal corpus (Legifrance/DILA) with full-text search, verbatim article retrieval, and citation grounding to prevent hallucinations.
    4
    125 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides local semantic search over files using embeddings, enabling directory indexing and natural language queries without external services.
    51 PyPI
    MIT